1

私は数人の友人と一緒に Web サイトに取り組んでいますが、最近、かなり重要な機能が空白のページを返すだけであることにユーザーから不満が寄せられています。これは一部のユーザーにのみ発生しますが、他のユーザーは完全に問題なく使用できます。

デバッグ出力を調べたところ、関数が 2 回宣言されていることがわかりました。機能のメイン ページ ( ) に 1 回、編集foo.phpされるファイルに 1 回。require_once明らかに、私は今それを修正するための正しい道を歩んでいますが、私を混乱させているのは、多くの人がページにアクセスしたときにこの問題を理解していないことです. どちらの関数宣言も同じです。本文は、あるファイルから別のファイルにコピーアンドペーストされたようです。これらの関数宣言はどちらも条件付きではありません。どちらも常に発生する必要があります。

この致命的なエラーにもかかわらず、PHP が私の間違いを処理し、とにかくページを機能させることができる状況を知っている人はいますか?

4

2 に答える 2

1

関数宣言のタイプがpublic、private、またはprotectedである可能性があります。これにより、私の知る限り、phpでは関数の再宣言が許可されないため、運が良ければ致命的なエラーが発生することはありません。

于 2012-04-09T12:44:31.153 に答える
0

申し訳ありませんが、PHP は致命的なエラーや関数の再宣言を無視することはできません。その場合、PHP はどの関数宣言を考慮すべきか、古い宣言を使用するか新しい宣言を使用するかについて混乱するからです。

  • Fatal Error は、何か問題があり、PHP が次に何をすべきか混乱していることを意味します。したがって、それを正しく行うのはあなたの仕事です。

  • 申し訳ありませんが、PHP は 2 つ以上の宣言が同じであるかのように判断して、そのうちの 1 つを無視しようとはしません。これを行う必要がある場合、すでに遅い PHP はさらに遅くなります。したがって、コミュニティの利益のために、PHP インタープリターにこれを修正するよう依頼するのではなく、正しいコードを作成することを検討する必要があります。

于 2012-04-09T12:39:06.593 に答える