我有php:
public function __construct($config) {
if (!session_id()) {
session_start();
}
parent::__construct(Array $config) { // line no 52
if (!empty($config['sharedSession'])) {
$this->initSharedSession();
}
}
}
我收到一条错误消息,指出第52行应为T_VARIABLE
。我已经放弃了。我该怎么做。
答案 0 :(得分:2)
在PHP中没有“嵌入式构造函数”这样的东西。您显示的代码只是无效的废话,简单明了。我不确定你来自哪种其他语言,或者你对PHP有什么期望,但它根本不会做你想做的任何事情。
澄清重写方法的工作原理,因为这似乎是您要做的事情:
class Foo {
public function __construct($value) {
echo $value;
}
}
class Bar extends Foo {
public function __construct($value) {
echo $value . ' Bar';
}
}
class Baz extends Foo {
public function __construct($value) {
echo $value . ' Baz';
parent::__construct($value);
}
}
new Foo(42); // 42
new Bar(42); // 42Bar
new Baz(42); // 42Baz42
要覆盖子类中的方法,只需在子级中实现同名的方法即可。从而覆盖了父名的同名方法,并且不再执行。您可以使用parent::methodName()
调用父方法的方法实现。没什么,没什么。
答案 1 :(得分:0)
问题:
parent::__construct(Array $config) {
if (!empty($config['sharedSession'])) {
$this->initSharedSession();
}
}
你不能像这样调用父构造函数。你必须修改你的代码
parent::__construct(Array $config);