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 隐性调用父类构造函数
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 隐性调用父类构造函数
相关文章推荐
- 表单的建立和PHP的交互
- mac 下 sphinx + mysql + php 实现全文搜索(xampp)(3)sphinx 的配置项解析
- PHP生成随机密码方法汇总
- thinkphp getField( )和field( )
- Compiler Error Message: CS0016: Could not write to output file 'c:\Windows\Microsoft.NET\Framework64
- 【重新学习ThinkPHP】记录点滴
- php查看信息和加载模块
- [PHP] LAMP环境搭建
- ftp虚拟用户
- php实现发送邮件
- php错误消息捕获
- PHP初学-io操作
- php应用wiki
- YII 增加登陆认证
- php + mysql + sphinx 的全文检索(2)
- PHP中session_register函数详解【转】
- PHP 自动加载类
- php mysql 安全 防止SQL注入
- laravel框架session使用教程
- PHP常用正则表达式汇总