php 构造函数的继承

出现问题:




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 隐性调用父类构造函数 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值