您的位置:首页 > 编程语言 > PHP开发

php 构造函数的继承

2015-08-27 16:06 651 查看
出现问题:









test类继承C  test不包含构造函数,C类继承B 显示的调用父级的构造函数,在controller控制器中定义了如果存在_init方法则执行_init

在这个背景下,C类定义的get_c 被test的_init调用,如果parent::__construct 在初始化$c之前,在test中是获取不到数据的  这时的构造函数执行顺序是:

test 中不存在__construct  执行继承的C的构造函数,C显示调用B,B显示调用A,A显示调用Controller的构造函数,在顶级构造函数中定义了_init先行

test._init => controller.__construct => A.__construct => B.__construct => C.__construct

在执行test_init 之前 C.__construct 中 parent::__construct是没有初始化化的  所以get_c 获取不到数据

php 单继承

1 __construct 优先

2子类存在__construct  重构父类的构造函数

3子类存在__construct,调用父类构造函数 显示的调用

4子类不存在__construct 隐性调用父类构造函数 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: