私はJ2EEのバックグラウンドを持っていますが、PHP開発者が次のステートメントで通知をオフにして無視することは非常に一般的であるようです。error_reporting(E_ALL&〜E_NOTICE);
私が作業しているアプリケーションは、未設定の変数に関するメッセージでいっぱいですか?これは私には非常に奇妙に思えます。
私はJ2EEのバックグラウンドを持っていますが、PHP開発者が次のステートメントで通知をオフにして無視することは非常に一般的であるようです。error_reporting(E_ALL&〜E_NOTICE);
私が作業しているアプリケーションは、未設定の変数に関するメッセージでいっぱいですか?これは私には非常に奇妙に思えます。
それは悪い習慣ですが、それはかなり一般的です。
箱から出してすぐに使用できるデフォルトの設定であるため、標準的な方法と見なされていると言えます。
ただし、これがPHPのデフォルト設定であるという事実は、それが良い考えであることを意味するものと見なされるべきではありません。(咳咳 )_register_globals
問題は、E_NOTICE
未定義の変数と未定義の配列インデックスの両方をカバーしていることです。前者は後者よりもはるかに優れたバグの兆候です。
これが隠す古典的なバグは、を使用$var
するつもりだったときに使用しています$this->var
。この理由だけで、未定義の変数のバグがより明白になるように、未定義の配列インデックスの警告メッセージをクリーンアップすることについて分析する価値があると思います。
PHP 5.3ではこれらを分離できると思っていましたが(まだ使用していません)、調べたところ、これについての言及は見つかりませんでした。
言及されているかどうかはわかりませんが、ローカル開発サーバーは次のようになります。
また、他の多くには、すべてのエラーと通知を報告するための PHP エラー設定があります。に等しいerror_reporting(E_ALL);
。
ただし、コードの通知やエラーをチェックするためにこれらのクイック コードが必要な場合は、サーバーが特定の PHP スクリプトに対して実行する現在のエラー レポート レベルを設定します。
エラーは表示されますが、通知は表示されません:
error_reporting(E_ALL & ~E_NOTICE | E_STRICT);
すべてを表示:
error_reporting(E_ALL);
エラーのみを表示:
error_reporting(E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR);
これらの行の 1 つを PHP スクリプトの最初に追加するだけです。
PS: ホスティング サーバーに通知を表示するのはあまり良い考えではありません。ホスティングサーバーに送信するときは、これらの行を必ず削除してください
これらの値のいずれかの PHP.ini 構成を変更する場合。
PHP.ini 設定ファイルを開くと、514º の行のあたりにデフォルトのエラー報告レベルがあります。
これを開くと役立ちます。
よろしく
編集: 504º ではなく 514º ラインでした。ごめん
新しいバージョンの PHP ではデフォルト設定になっているため、標準的な方法と見なされます。
変数を使用する前に変数を設定しなくても済むようにすることができます。一般的には一握りの警告が表示されるため、すぐに決定することは (大きな影響を与えないことがわかっているため)、変数をオフにすることです。
正しくプログラムすれば、必要ないはずです
システムを継承する前に、すべての警告をオフに設定しました。
詳細については、エラー報告の PHP ページをご覧ください。
:)
はい、それは標準的な (良いか悪いかについての意見にもかかわらず) 慣行と見なされます。PHPマニュアルごと:
PHP 4 および PHP 5 では、デフォルト値は E_ALL & ~E_NOTICE です。この設定では、E_NOTICE レベルのエラーは表示されません。開発中にそれらを表示したい場合があります。
通知を表示すると、デバッグ時にタイプミスが発生しやすくなりますが、通知を表示しないことで困ったことは一度もありません (私はタイピストが得意です)。Javaのバックグラウンドを持つ人にとってはショックだと思いますが...
公式ディストリビューションに同梱されているデフォルトの php.ini ファイルは少し統合失調症です。一方では、開発に適していると主張していますが (たとえば、エラーが表示されます)、Notices をオフにしており、オンにすると開発に適しているというメモが表示されます。(私は実際にこれについてバグを報告しましたが、明らかにこれを修正したくないため、クローズされました。) IME、ほとんどの開発者は、できることを知らないため、このデフォルトを変更しません。このため、通知を生成する多くの PHP コードを目にします。
選択できる場合は、通知をオンにします。次に、設定されていない変数を使用するなどの愚かなことを行うコードを修正します。あなたのコードはそれに対してより良いものになります。