CodeIgniter 控制器方法不能和控制器类名同名

我写了这样一段代码:

class Login extends CI_Controller {

    public function index()	{
        $this->load->library('form_validation');
        /* ... other code ... */
        $this->load->view('login_form');
    }

    public function login() {
        $this->load->helper('url');
        /* ... other code ... */
    }
}

 

运行,无论怎样都有错,提示 $this 的 load, session 等属性不存在。找了半天才知道是存在与控制器类名相同的方法引起的。

但是为什么会是这样呢?有时间研究一下。