php5開始可以在類別中宣告__construct建構方法,當物件被實例化的時候,該方法被呼叫。
要注意:
1.如果在繼承的子類別中沒有建構方法而父類別中有建構方法,那麼當實例化子類別時,父類別的建構方法會被隱含呼叫。
2.如果子類別有建構方法,父類別中也有建構方法,那麼子類別要顯示呼叫parent::__construct()才能父類別的建構方法。
3、為了向前相容,如果在php5類別中沒有找到__construct()方法,它會去找與類別名稱相同的方法名稱的建構器。
class Person{ public $sex = '男'; function __construct() { echo 'parent __construct'; } } class Student extends Person{ private $id; private $name; private $age; //构造函数 function __construct($id,$name,$age) { parent::__construct(); echo '__construct'; $this->id = $id; $this->name = $name; $this->age = $age; } public function getName() { return $this->name; } //析构函数 function __destruct(){ echo '__destruct'; } } $su = new Student('id001','张三',20); echo $su->getName(); echo $su->sex;
列印結果:
parent __construct
__construct
張三
男
__destruct