构造函数 - CodeIgniter

时间:2015-08-06 07:16:07

标签: php codeigniter constructor

任何人都可以告诉我为什么控制器代码中的构造函数使用parent :: __ construct?我只知道这是因为这是在CI_Controller中的父类中使用该方法。 如果是这样,为什么模型代码中的构造函数不使用parent :: __ construct?

class News extends CI_Controller
{

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



class News_model extends CI_Model
{
public function __construct()
{
    $this->load->database();
}

2 个答案:

答案 0 :(得分:0)

  
      
  • 这一行必要的原因是你的本地构造函数将覆盖父控制器类中的那个,所以我们需要手动调用它。
  •   
  • 如果您需要设置一些默认值,或者在实例化类时运行默认进程,那么构造函数非常有用。构造函数不能返回值,但它们可以执行一些默认工作。
  •   

阅读Codeigniter Constructors

PHP Codeigniter - parent::__construct

可能重复

示例

public function  __construct()
{
    parent::__construct();
    $this->load->helper('date');
    $this->load->library('session');
    $this->load->model('My_model');
    $this->load->library('cart');

}

答案 1 :(得分:0)

您需要包含parent::__construct();以包含扩展类 如果不包含您将覆盖父类构造函数的codeigniter的默认构造函数初始化。 function __construct()总是在类实例化时运行,所以如果你想加载一些库或者初始化一些值,那就把它放在那里。