用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3604|回复: 2
收起左侧

[已解决] ci2.0必须要显式调用构造函数么?

[复制链接]
发表于 2011-3-21 17:16:46 | 显示全部楼层 |阅读模式
闲来无事,试试ci2.0,中途遇到半天都解决不了的问题。最后终于被发现了,就是控制器中必须显式调用构造函数
PHP复制代码
 
       function __construct()
       {
            parent::__construct();
       }
 
复制代码

把这段代码注释掉,马上报错

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Index:load

Filename: controllers/index.php

Fatal error: Call to a member function view() on a non-object in T:\gsblog\application\controllers\index.php on line 13

php手册上说,若子类没有显式定义构造函数,则默认调用父构造函数。
按道理说,这个调用写不写完全没有影响的
这是何解?求解释...
 楼主| 发表于 2011-3-21 17:29:19 | 显示全部楼层
唉哟,不好意思。原来用到了保留字index,罪过啊...
发表于 2011-3-21 22:53:22 | 显示全部楼层
这个跟 CI 无关,PHP 规定如果子类有构造函数,就不会自动调用父类的构造函数。
如果子类没有构造函数,会自动调用父类构造函数。
所以你才会看到 parent::__construct();

本版积分规则