谁能告诉我为什么在控制器代码的构造函数使用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();
}
这一行之所以必要是因为你的局部构造函数将覆盖父控制器类中的构造函数,所以我们需要手动调用它。如果您需要设置一些默认值,或者在实例化类时运行默认进程,则
- 构造函数非常有用。构造函数不能返回值,但是它们可以做一些默认的工作。
读取Codeigniter构造函数
和可能的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');
}
您需要包含parent::__construct();
以包含扩展类codeigniter的默认构造函数初始化,如果不包含它,则将重写父类构造函数。function __construct()
总是在类实例化时运行,所以如果你想加载一些库或初始化一些值,最好放在那里。