php面向对象(OOP)—不同php版本构造方法的继承和兼容
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php面向对象(OOP)—不同php版本构造方法的继承和兼容,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1758字,纯文字阅读大概需要3分钟。
内容图文
![php面向对象(OOP)—不同php版本构造方法的继承和兼容](/upload/InfoBanner/zyjiaocheng/155/b40609c098124ee1984baa9327ef27aa.jpg)
PHP 4.x 的构造函数名与类名相同。
子类的构造函数名与子类名相同(废话)。
在子类里父类的构造函数不会自动执行。
要在子类里执行父类的构造函数,必须执行类似以下语句:
$this->[父类的构造函数名()]
class base1 {
function base1() {
echo 'this is base1 construct';
}
}
class class1 extends base1 {
function class1() {
$this -> base1();
echo 'this is class1 construct';
}
}
$c1 = new class1;
PHP5.x 版本:
PHP5.0 以上版本对类的功能进行了很大的扩充。类的构造函数统一命名为__construct()。
子类的构造函数名也是__construct()(也是废话)。
在子类里父类的构造函数会不会执行,分两种情况:
1、如子类不定义构造函数 __construct(),则父类的构造函数默认会被继承下来,且会自动执行。
2、如子类定义了构造函数 __construct(),因为构造函数名也是__construct(),所以子类的构造函数实际上是覆盖(override)了父类的构造函数。这时执行的是该子类的构造函数。
这时如果要在子类里执行父类的构造函数,必须执行类似以下语句:
parent::__construct();class base2 {
function __construct() {
echo 'this is base2 construct';
}
function __destruct() {}
}
class class2 extends base2 {
function __construct() {
parent::__construct();
echo 'this is class2 construct';
}
}
注意 parent::__construct(); 语句不一定必须放在子类的构造函数中。放在子类的构造函数中仅仅保证了其在子类被实例化时自动执行。
PHP4.0 和 5.0 类构造函数的兼容问题:
在 PHP5.0 以上版本里,还兼容了 4.0 版本的构造函数的定义规则。如果同时定义了4.0的构造函数和 __construct()函数,则__construct() 函数优先。
为了使类代码同时兼容 PHP4.0 和 5.0,可以采取以下的方式:
class class3 {function __construct() //for PHP5.0
{
echo 'this is class2 construct';
}
function class3() //for PHP4.0
{
$this -> __construct();
}
}
$c3 = new class3;
上面的内容引自"小炒花生米"大哥,谢谢大哥的分享。
以上就介绍了php面向对象(OOP)—不同php版本构造方法的继承和兼容,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
内容总结
以上是互联网集市为您收集整理的php面向对象(OOP)—不同php版本构造方法的继承和兼容全部内容,希望文章能够帮你解决php面向对象(OOP)—不同php版本构造方法的继承和兼容所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。