【发布时间】:2013-07-22 11:35:45
【问题描述】:
当从 PHP 中的父类继承时,尤其是在 Codeigniter 中,parent::__construct or parent::model() 做了什么?
如果我不__construct 父类会有什么不同?
以及,建议采用哪种方式?
-已添加-
重点更多地放在 Codeigniter 上,即根据版本以不同方式调用 parent::__construct,如果 Codeigniter 会自动执行此操作,是否可以省略它。
【问题讨论】:
-
了解
constructors。 -
parent::__construct() 子类构造函数Doc
-
@SeongLee:Niloy 的意思是,在 PHP 中,如果子构造函数有构造函数,则不会调用父构造函数,除非您使用
parent::__construct();显式调用它。换句话说:子 masks 父构造方法,所以你需要明确指定parent::范围。所以你的问题的答案是:“这取决于父构造函数做什么,如果你需要它” -
特别是在 CodeIgniter 中,如果您在应用程序控制器初始化时不调用
parent::__construct();,您将失去Loader and Core类并且$this->load将永远无法工作。检查system/core/Controller.phplines: 37-54。 -
@SeongLee 仅当您想在控制器中声明
__construct()方法时才需要使用parent::__construct();,它将覆盖父级的方法。对于模型也是如此,但是在模型中使用parent::__construct();只会记录一条调试消息"Model Class Initialized",因此如果您需要知道模型何时初始化(在日志中),请继续使用它,如果不,忽略它。
标签: php codeigniter