CodeIgniter 中 __construct() 的作用是什么?

新手上路,请多包涵

我使用 CodeIgniter 框架,对此我是新手。在下面的代码中, __construct() 函数用于加载模型。

  • 为什么我需要使用 __construct()
  • 我什么时候应该使用这个功能?
  • 什么是 parent::__construct()

代码

function __construct() {
    parent::__construct();
    $this->load->model('example');
}

原文由 mohsen 发布,翻译遵循 CC BY-SA 4.0 许可协议

回复
阅读 62
1 个回答

构造函数允许您在整个类中使用事物。这样您就不必在每个方法中加载模型/语言/设置。

假设您有一个要为该类加载的模型和语言,您可以在构造函数中执行此操作。例如,如果类中有一个电子邮件方法并且只在该类中使用电子邮件,则不必在构造函数中设置它,而是在方法中设置。这样就不会为所有其他不使用它的方法加载不需要的内容。

     class Contact extends CI_Controller {

      public function __construct(){
        parent::__construct();
        $this->load->model('contact_model', 'contact');
      }

      public function index(){
        $data['contact'] = $this->contact->getContact();
        $this->load->view('contact', $data);
      }

      public function send_mail(){
        /* Mail configuration - ONLY USED HERE */
        $config = array('protocol' => 'mail',
                    'wordwrap' => FALSE,
                    'mailtype' => 'html',
                    'charset'   => 'utf-8',
                    'crlf'      => "\r\n",
                    'newline'   => "\r\n",
                    'send_multipart' => FALSE
                    );
        $this->load->library('email', $config);
        $records = $this->contact->getCompany();

        $this->email->from( $setmail, $records['CompanyName'] );
        $this->email->to( $to );
        $this->email->subject( $subject );
        $this->email->message( $html );
        $this->email->send();
      }

    }

来自 php:http: //php.net/manual/en/language.oop5.decon.php

PHP 5 允许开发人员为类声明构造方法。具有构造函数方法的类在每个新创建的对象上调用此方法,因此它适用于对象在使用之前可能需要的任何初始化。

原文由 Davy Baccaert 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏