4

我已经在这里阅读了相关主题Function with same name but different signature in derived class

我认为问题是一样的,但就我而言,它发生在 PHP 5.4 中(在 PHP 5.3 中工作正常)。具体配置是wamp 2.2,PHP 5.4.3。我在日志中看不到任何错误,Chrome 浏览器显示以下内容:“错误 101 (net::ERR_CONNECTION_RESET):连接已重置。”

如果我在下面的示例中更改函数“init”的名称,一切正常。所以我知道该怎么做,但我想确保这通常是一种不好的做法,原因与相关问题中解释的原因相同。如果 PHP 显示错误会很有帮助,我不知道内部发生了什么。

有什么想法吗?

谢谢

class MyClass1 {

    private function init(){

    }
}

class MyClass2 extends MyClass1 {

    private function init($params) {

    }
}

$myinstance = new MyClass2();
4

2 回答 2

2

我刚刚查找了PHP 更改日志,发现了一些可能相关的内容。

5.4.4 版本说明中的一项内容如下:

修复了错误 #61761(“覆盖”具有不同签名的私有静态方法会导致崩溃)

这听起来很像您所看到的,特别是因为您指定您使用的是 PHP 5.4.3。

根据我之前的评论,因此我建议升级到更新的 5.4 版本(最好是最新的——目前是 5.4.8)。

希望有帮助。

于 2012-11-16T11:52:15.233 回答
0

根据您在 Chrome 中遇到的错误,我猜 PHP 正在崩溃(因此没有有意义的错误)。我会首先禁用一些扩展,也许检查你的事件查看器是否有任何崩溃信息。

于 2012-11-16T11:38:06.783 回答