この記事では、PHP コマンド ライン エラーについて、意外と知られていないことをいくつか紹介します。
PHP は一般的なサーバーサイド言語として、通常 Web サーバー上で実行されますが、コマンド ライン上で直接実行することもできます。たとえば、Linux または MacOS システムでは、「php」と入力できます。 「terminal」コマンドを使用して、PHP スクリプトを直接実行します。
ただし、Web サーバーと同様に、コマンド ラインから PHP スクリプトを実行すると、いくつかのエラーが発生します。ここでは、PHP コマンド ライン エラーについて、あまり知られていない情報をいくつか紹介します。
- エラー メッセージは自動的に表示されません
コマンド ラインから PHP スクリプトを実行するときスクリプト内のエラーである場合、エラー メッセージは Web サーバー内にあるため、画面に自動的に表示されません。これは、コマンド ラインの PHP 環境では、デフォルトで PHP がエラー情報をエラー出力ストリーム (STDERR) ではなく標準出力ストリーム (STDOUT) に出力するためです。
したがって、コマンド ラインで PHP エラー情報を確認したい場合は、次のコードを PHP スクリプトに追加することで、エラー情報を標準エラー ストリームに出力する必要があります。 #
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
ログイン後にコピー
これらのコードは、エラー情報をエラー出力ストリームに出力し、警告や通知を含むすべてのエラー情報を表示するように PHP に指示します。これらのコードは、PHP スクリプトの先頭に配置する必要があります。
プログラムは引き続き実行されます
PHP コマンド ライン スクリプトでエラーを処理しない場合、エラーが発生してもプログラムは引き続き実行されます。これは、PHP コマンド ライン スクリプトでのエラー処理が Web サーバーでのエラー処理とは異なるためです。コマンド ラインでエラーを処理する場合は、try-catch ステートメントまたはカスタム エラー処理関数を使用できます。
例:
set_error_handler(function ($errno, $errstr, $errfile, $errline ) {
echo "Error: [$errno] $errstr - $errfile:$errline";
die();
});
ログイン後にコピー
これらのコードは、カスタム エラー処理関数を使用してエラー情報を処理し、エラー処理の完了後にプログラムの実行を終了します。この関数は PHP スクリプトの先頭に追加する必要があります。
PHP コマンド ラインのエラー情報をファイルにエクスポートできます
PHP コマンド ラインのエラー情報をファイルに保存したい場合は、次のコマンドを使用できます。リダイレクト操作文字「>」および「>>」。例:
php script.php > output.log 2>&1
ログイン後にコピー
このコマンドは、標準出力ストリームとエラー出力ストリームのすべてを、output.log という名前のファイルにリダイレクトします。元のファイルの内容を上書きしたくない場合は、「>>」演算子を使用できます。
エラー メッセージは実際にプログラムのデバッグに役立ちます-
PHP コマンド ラインのエラー メッセージはわかりにくいように見えるかもしれませんが、実際にはプログラムのデバッグに役立ちます。
まず、エラー メッセージには、プログラム内で問題が発生した場所、エラーの種類、ファイルと行番号、エラーの理由が示されます。この情報により、問題を迅速に特定できます。
第二に、エラー メッセージはプログラムの実行フローを示すこともできます。関数呼び出しの順序や、エラー スタックを介した関数間のパラメーター転送を表示できるため、実行フローを理解するのに非常に役立ちます。プログラムの。
結論:
コマンドラインで PHP スクリプトを実行するときは、PHP エラー メッセージの処理方法に注意する必要があります。エラー情報を標準エラー ストリームに出力したり、エラー処理関数をカスタマイズしたり、try-catch ステートメントを使用したりすることで、コマンド ラインから PHP エラーを簡単に処理できます。さらに、リダイレクト演算子を使用してエラー情報をファイルにエクスポートし、簡単に表示したりデバッグしたりできます。
以上がPHP コマンド ライン エラー: 知らないことの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。