PHP没有显示有意义的错误。在派生类中具有相同名称但签名不同的函数

时间:2012-11-16 03:05:23

标签: php class

我已在此处阅读了相关主题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();

2 个答案:

答案 0 :(得分:2)

我一直在查找the PHP changelog并找到可能相关的内容。

5.4.4发行说明中的​​项目内容如下:

  

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

听起来很像非常非常类似于你所看到的,特别是因为你指定你正在使用PHP 5.4.3。

根据我之前的评论,我建议升级到5.4的更新版本(最好是最新版本 - 目前为5.​​4.8)。

希望有所帮助。

答案 1 :(得分:0)

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