出现问题:
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 隐性调用父类构造函数