为什么在codeigniter中需要__constructor

时间:2015-09-24 20:09:30

标签: php codeigniter

为什么__constructor代码需要在codeigniter控制器和模型中运行?没有这些行,代码工作正常。我很困惑!

function __construct()
     {
          parent::__construct();
     }

2 个答案:

答案 0 :(得分:0)

只要控制器/模型中的类不需要调用构造函数方法,它就会起作用。如果它扩展的类定义了所需的依赖项(例如),则可能会得到不需要的结果。 即使构造函数方法是一个所谓的“魔术方法”,当你使用new关键字时会自动调用它(注意你必须使用括号):

$foo = new Foo();

这并不意味着Foo扩展的类将自动调用它的构造函数方法。

答案 1 :(得分:0)

使用_construct(magic Function)背后的原因是通过控制器加载库和帮助程序,这样就不必在每个函数中加载库和帮助程序。

示例:

function __construct() {
   parent::__construct();
   $this->load->library('someclass');
   $this->load->helper('someclass');
}