caoyangqingchun 发表于 2011-3-21 17:16:46

ci2.0必须要显式调用构造函数么?

闲来无事,试试ci2.0,中途遇到半天都解决不了的问题。最后终于被发现了,就是控制器中必须显式调用构造函数

       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手册上说,若子类没有显式定义构造函数,则默认调用父构造函数。
按道理说,这个调用写不写完全没有影响的
这是何解?求解释...

caoyangqingchun 发表于 2011-3-21 17:29:19

唉哟,不好意思。原来用到了保留字index,罪过啊...

Hex 发表于 2011-3-21 22:53:22

这个跟 CI 无关,PHP 规定如果子类有构造函数,就不会自动调用父类的构造函数。
如果子类没有构造函数,会自动调用父类构造函数。
所以你才会看到 parent::__construct();
页: [1]
查看完整版本: ci2.0必须要显式调用构造函数么?