What is the function __construct used for?
__construct
was introduced in PHP5 and it is the right way to define your, well, constructors (in PHP4 you used the name of the class for a constructor).You are not required to define a constructor in your class, but if you wish to pass any parameters on object construction then you need one.
An example could go like this:
class Database { protected $userName; protected $password; protected $dbName; public function __construct ( $UserName, $Password, $DbName ) { $this->userName = $UserName; $this->password = $Password; $this->dbName = $DbName; }}// and you would use this as:$db = new Database ( 'user_name', 'password', 'database_name' );
Everything else is explained in the PHP manual: click here
__construct()
is the method name for the constructor. The constructor is called on an object after it has been created, and is a good place to put initialisation code, etc.
class Person { public function __construct() { // Code called for each new Person we create }}$person = new Person();
A constructor can accept parameters in the normal manner, which are passed when the object is created, e.g.
class Person { public $name = ''; public function __construct( $name ) { $this->name = $name; }}$person = new Person( "Joe" );echo $person->name;
Unlike some other languages (e.g. Java), PHP doesn't support overloading the constructor (that is, having multiple constructors which accept different parameters). You can achieve this effect using static methods.
Note: I retrieved this from the log of the (at time of this writing) accepted answer.
Its another way to declare the constructor. You can also use the class name, for ex:
class Cat{ function Cat() { echo 'meow'; }}
and
class Cat{ function __construct() { echo 'meow'; }}
Are equivalent. They are called whenever a new instance of the class is created, in this case, they will be called with this line:
$cat = new Cat();