happyqyt 发表于 2012-3-9 12:17:34

使用CI的过程中发现的一个问题

如果控制器中存在一个和控制器同名的方法,就会出现这样的一个错误:

Severity: Notice--> Undefined property: Managed::$load D:\KAAS\Console\CI\kaasapp\controllers\managed.php 14

Managed是控制器类名。

所以控制器中是不允许出现和控制器同名的方法的,不知道我总结的对不对?

sdink 发表于 2012-3-9 17:01:28

错,在PHP里控制器同名的方法叫构造,CI默认的是index

Hex 发表于 2012-3-10 12:23:09

是的 PHP中与类名同名的方法是构造函数,这个是有特殊意义的,跟 CI 无关

留痕 发表于 2012-3-10 13:10:42

类和方法同名是构造方法

__construct

phptree 发表于 2012-3-10 16:59:58

方法和类重名是可以的,只不过要重新载入父类的构造方法
下面代码就没有报错

class Home extends CI_Controller {
function Home(){
    parent::__construct();
}
function index(){
    $this->load->view('home');
}
}

happyqyt 发表于 2012-3-25 15:02:52

恩恩~学习了~{:soso_e106:}
页: [1]
查看完整版本: 使用CI的过程中发现的一个问题