PHP スクリプトを実行しようとすると、空白の画面が返されることがよくあります。エラー メッセージは表示されず、単に空の画面が表示されます。原因は、単純な構文エラー (括弧が間違っている、セミコロンがない)、関数呼び出しの失敗、またはまったく別の何かである可能性があります。
何が間違っていたのかを突き止めるのは非常に困難です。結局、コードをコメントアウトしたり、あらゆる場所に「echo」ステートメントを入力したりして、問題を絞り込もうとします。しかし、もっと良い方法があるはずですよね?
PHP で Java のように役立つエラー メッセージを生成する方法はありますか?
ベストアンサー1
デフォルトでは、「顧客」にエラー メッセージが表示されないようにするため、エラーの表示はオフになっています。
このページをチェック2 つのディレクティブの詳細については、PHP ドキュメントの と を参照してください。error_reporting
おそらくdisplay_errors
、display_errors
変更したいのは です。
したがって、3 つの選択肢があります。
(1) エラーログファイルにはすべてのエラーが記録されているので、それをチェックすることができます(ログ記録が無効になっていない限り)。エラーログを有効にするには、log_errors
構成ディレクティブが に設定されていることを確認してくださいOn
。ログは、エラーが PHP ではなく Web サーバーによって発生した場合にも役立ちます。
(2)次の2行を追加すると、同じファイル内で発生した構文エラー以外のエラーをデバッグするのに役立ちます。
error_reporting(E_ALL);
ini_set('display_errors', 'On');
ライブ サーバーでは、後者を設定する必要があることに注意してくださいOff
(ただし、発生したすべてのエラーをログ ファイルから確認する必要があるため、後者のみに設定してください)。
ただし、同じファイルで構文エラーが発生した場合、上記のコマンドは機能しないため、php.ini で有効にする必要があります。php.ini を変更できない場合は、.htaccess ファイルに次の行を追加することもできますが、現在ではほとんどサポートされていません。
php_flag display_errors on
php_value error_reporting -1
(3)別の選択肢としては、入力時にエラーをチェックするエディタを使うことです。翻訳、VSCode、PHPStorm などがあります。これらにはすべて、より詳細な情報を提供できるデバッガーが付属しています。(PhpEd デバッガーは xdebug に非常に似ており、エディターに直接統合されているため、1 つのプログラムですべてを実行できます。)