【推荐】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方法。
大家可以试试!特在此写下以加深理解和记忆。
来源:oschina
链接:https://my.oschina.net/u/659844/blog/95017