4

私はすでに関連トピックをここで読んだFunction with same name but different signature inderived 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 に答える