我知道在
Java中,构造函数中的super()必须被调用为重写构造函数的第一行.
这是否也适用于PHP中的parent :: __ construct()调用?
我发现自己编写了一个这样的Exception类:
class MyException extends Exception { public function __construct($some_data) { $message = ''; $message .= format_data($some_data); $message .= ' was passed but was not expected'; parent::__construct($message); } }
如果您希望执行父构造函数中的代码,则需要在某个时刻调用parent :: __ construct(…).这样做在技术上并不重要.有时在调用父类的构造函数之前在重写的构造函数中做一些工作更有意义,有时你依赖于父类的构造函数所做的工作,然后才能在重写的构造函数中工作.
原文链接:https://www.f2er.com/php/130283.html根据经验,我会说你应该尽快调用父的构造函数.如果在调用父构造函数之前需要执行某些操作,请执行此操作.如果没有,请立即拨打电话.这是为了避免父的构造函数撤消您在重写的构造函数中所做的任何工作,例如设置某些属性.
class A { function __construct() { $this->foo = 'bar'; } } class B extends A { function __construct() { // parent::__construct(); $this->foo = 'baz'; // parent::__construct(); } }
在上面的示例中,调用父项的第一个或最后一个之间的差异会对结果对象产生很大的影响.哪个更合适取决于你想要做什么.