CodeIgniter控制器构造函数

Joe*_*lum 13 php codeigniter

我对codeigniter很新,我想知道控制器中构造函数的含义是什么.我在codeigniter教程中看到了以下代码 -

class upload extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->helper(form);
    }

    // rest of the class...
Run Code Online (Sandbox Code Playgroud)

我的问题是何时调用构造函数 - 每次控制器发出请求时是否调用它(例如,控制器类是否为它接收的每个请求实例化?)

Dam*_*rsy 14

那么,这是一个更普遍的PHP问题.无论如何,是的,魔术方法__construct()在每次实例化时都会被调用(自动),如手册中所示:http://www.php.net/manual/en/language.oop5.decon. PHP

通常,在CI中没有必要调用构造函数,除非你真的想要一个.在您发布的示例中,代码在类的每个实例化中加载帮助程序 - 这与在每个方法中加载帮助程序相同,只是节省了大量的输入并确保它不会被遗忘.您也可以将想要的库/助手/模型加载到config/autoload.php中相应的自动加载阵列中(在CI手册中选中"自动加载")

在子控制器中定义构造函数后,您必须调用父构造函数(邮件CI_Controller类),因为创建主CI对象并加载所有类,您需要在子项中使用这些构造函数.控制器也; 如果不这样做,你的子类将单独构造,不会继承.

我希望我说清楚,英语不是我的母语:)