CI等MVC框架中为什么不能有index控制器的原因

回眸只為那壹抹淺笑 提交于 2019-12-26 11:37:21

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

因为 类名称是index 而方法又是index,这样index函数就是php4中的构造函数,即实例化类时,直接执行这个函数而没有执行父类的构造函数,也就没有初始化CI核心类。所以会提示没有定义属性或方法了。

用index类名也可以,在

public function index() 方法前加上,调用父类的构造方法

public function __construct() { parent::__construct(); }

这个原理是:当类中同时存在php4和php5的构造函数时,只执行php5 的 __construct();。

当在index方法中加上 parent::__construct()又会出现什么呢? function index() { parent::__construct(); $this->load->view('.......'); }

重复执行了两次 index方法。第一次php4的构造函数,第二次CI的index方法。

大家可以试试!特在此写下以加深理解和记忆。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!