What is the function __construct used for? What is the function __construct used for? php php

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();