本文不再赘述面向对象的知识,本文着重说明php的构造函数。
php类的构造函数可以是魔术魔方__construct() 也可以是和类同名的函数,实例如下:
classa{publicfunctiona(){echo'a is constructing...'; } } classb{publicfunction__construct(){echo'b is contructing...'; } } $a = new a(); // a is constructing...$b = new b(); // b is constructing...
此外,在继承时,应该注意的是:
【子类可以不写构造函数,那么使用父类的构造函数】
classa{protected$name; publicfunctiona(){echo'a is constructing...
'; } publicfunctionset_name($name){$this->name = $name; } publicfunctionget_name(){return$this->name; } } classbextendsa{/* public function __construct(){ echo 'b is contructing...
'; } */ } //$a = new a();$b = new b(); // a is constructing...$b->set_name('zhangsan'); echo$b->get_name();
【子类如果写了构造函数,那么不会再调用父类的构造函数了】
classa{protected$name; publicfunctiona(){echo'a is constructing...
'; } publicfunctionset_name($name){$this->name = $name; } publicfunctionget_name(){return$this->name; } } classbextendsa{publicfunction__construct(){echo'b is contructing...
'; } } //$a = new a();$b = new b(); // just echo 'b is contructing...'$b->set_name('zhangsan'); echo$b->get_name(); // zhangsan
【父类的构造函数如果是私有的,可以被继承,但是子类必须有自己的构造函数,并且明确写出来】
classa{protected$name; privatefunctiona(){echo'a is constructing...
'; } publicfunctionset_name($name){$this->name = $name; } publicfunctionget_name(){return$this->name; } } classbextendsa{publicfunction__construct(){echo'b is contructing...
'; } } //$a = new a();$b = new b(); // b is contructing...$b->set_name('zhangsan'); echo$b->get_name(); // zhangsan
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了php面向对象构造函数说明,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。