php构造函数 php5允许开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建新对象是先调用此方法,适合在使用对象之前做一些初始化的工作 注意:如果子类中定义了构造函数则不会隐式调用其父类的构造函数。要执行父类的构造函数,需要在
php构造函数
php5允许开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建新对象是先调用此方法,适合在使用对象之前做一些初始化的工作
注意:如果子类中定义了构造函数则不会隐式调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用parent::__cinstruct();
class A{ public function __construct(){ echo "hello"; } } $arg=1; $a=new A($arg);
打印结果:hello
/** 使用并调用多个构造函数 **/ class Myclass{ public function __construct(){ $a=func_get_args(); $i=func_num_args(); if(method_exists($this,$f='__construct'.$i)){//检查类方法是否存在 call_user_func_array(array($this,$f),$a);// 返回一个用户函数与特定的参数数组 } } function __construct1($a1){ echo('__construct with 1 param called: '.$a1.PHP_EOL); } function __construct2($a1,$a2){ echo('__construct with 2 params called: '.$a1.','.$a2.PHP_EOL); } function __construct3($a1,$a2,$a3){ echo('__construct with 3 params called:'.$a1.','.$a2.','.$a3.PHP_EOL); } } $a=new Myclass('aa');//__construct with 1 param called: aa $a=new Myclass('aa','bb');//__construct with 2 params called: aa,bb $a=new Myclass('aa','bb','cc');//__construct with 3 params called:aa,bb,cc
php析构函数
php5引入了析构函数的概念,析构函数会在到对象的所有的引用都被删除或者当对象被显示销毁时执行
注意:
和析构函数一样,父类的析构函数不会被引擎暗中调用,要执行父类的析构函数,必须在子类的析构函数体中显示调用parent::__destruct()
析构函数即使在使用exit()终止脚本运行时也会被调用,在析构函数中调用exit()将会中止其余关闭操作的运行