PHP5부터는 클래스에서 __construct 생성자 메서드를 선언할 수 있습니다. 이 메서드는 개체가 인스턴스화될 때 호출됩니다.
참고:
1. 상속된 하위 클래스에 생성자가 없지만 상위 클래스에 생성자가 있는 경우 하위 클래스가 인스턴스화되면 상위 클래스의 생성자가 암시적으로 호출됩니다.
2. 하위 클래스에 생성자가 있고 상위 클래스에도 생성자가 있는 경우 하위 클래스는 명시적으로 parent::__construct()를 호출하여 상위 클래스의 생성자에 액세스해야 합니다.
3. 향후 호환성을 위해 __construct() 메서드가 php5 클래스에 없으면 클래스 이름과 동일한 메서드 이름을 가진 생성자를 찾습니다.
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
Zhang San
Male
__destruct