2012-04-09 2 views
1

私はいくつかの友人と一緒にウェブサイトを作っていますが、最近、ユーザーは空白のページを返す以外は何もしないという非常に重要な機能について不満を抱いています。これは一部のユーザーにのみ発生しますが、他のユーザーはそれを完全にうまく使用することができます。PHPは関数の再宣言を無視することがありますか?

私はデバッグ出力を参考にして、関数が2回宣言されていることが分かりました。機能のメインページ(foo.php)に1度入っていて、require_once 'を取得したファイルに1つ。明らかに私は今それを修正するための正しい道にあるが、私を混乱させる多くの人々が行うではないページを訪問するときにこの問題が発生します。どちらの関数宣言も同じです。ボディはあるファイルから別のファイルにコピー+ペーストされたようです。これらの関数宣言のどちらも条件付きではありません。両方とも常に起こるはずです。

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

+0

すべてのファイルは 'require_once'で最初に修正され、どのページが訪問されたかに応じて、特定のファイルが1回または複数回含まれている場合があります。 – linuxeasy

+0

投稿で述べたように、私は既にrequire_onceを使用しています。 – Neko

+0

PHPは関数の宣言を複数回(同じスコープを使用して)許可しません。いくつかの訪問者は異なると思うかもしれないし、叫ばないでください。 – Dev

答えて

0

申し訳ありませんが、PHPは、古い宣言または新しい宣言を使用するかどうか、どのような関数宣言を考慮するか混乱するため、致命的なエラーや機能の再宣言を無視できません。

  • 致命的なエラー手段、何かが右のそれを行うにはPHPは、次の何をすべきかのように混乱しているということなので、間違っているため、そのあなたの仕事があります。

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

+0

私はこれを知っています。私は、元の投稿に見られるように、私の問題をPHPで解決する方法を求めていません。 PHP **は現在、いくつかの状況でこの致命的なエラーを無視しています。なぜこのようなことが起こるのかを知ろうとしています。 – Neko

+0

詳細をデバッグし、エラーログを確認することで、これを簡単に知ることができます。そのプログラミングと何かがプログラミングでとにかくプログラムすることができます!その空白がエラーを意味する場合、PHPエラーのファイルにエラーログをまだ設定していない場合は、そのエラーを考慮する必要があります。 – linuxeasy

+0

@ネコ:いいえ、それを無視していません。それはできません。それは別のものです。 – netcoder

1

それはあなたの関数宣言の型であってもよいが、官民か、または任意の手段によって機能の再宣言することはできません私の知識のphpにまでと運によって致命的なエラーが発生していないかもしれないように保護されています。

関連する問題