Jump to content

Constructor question (newbie)


doug
 Share

Recommended Posts

I've been going through the O'Reilly book "Programming PHP". In the section on object constructors, there seems to be a mistake and I wanted to get your opinions of it. The section says:

A constructor is a function in the class called __construct(). Here’s aconstructor for the Person class: class Person {     function __construct($name, $ag‘e) {         $this->name = $name;         $this->age  = $age;     } } PHP does not provide for an automatic chain of constructors; that is, if you  instanti- ate an object of a derived class, only the constructor in the derived class i sautomati- cally called. For the constructor of the parent class to be called, the constructor in the derived class must explicitly call the constructor. In this example, the Employee class constructor calls the Person constructor: class Person {   var $name, $address, $age;   function Person($name, $address, $age) {     $this->name = $name;     $this->address = $address;     $this->age = $age;   } } class Employee extends Person {   var $position, $salary;   function Employee($name, $address, $age, $position, $salary) {     $this->Person($name, $address, $age);     $this->position = $position;     $this->salary = $salary;   } } 

But in the example, a function __construct() is nowhere to be found. Is this an error, or can a function the same name as the class itself be used instead of the function name __construct?Thanks,doug

Link to comment
Share on other sites

Yep , in all other languages a constructor is a public function of the name itself. So PHP uses it too just to be like every other cool kid(language) in the block :)I am no expert but I think it is preferred to use __construct() in php though.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...