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