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;
印刷結果:
親__construct
__construct
Zhang San
男性
__destruct