コードを作成する際には細心の注意を払っていても、プログラム エラーは常に避けられません。
php プログラムを開発するとき、php エラーが発生したときに、デバッグを容易にするためにできるだけ早くエラーが表示されることを望んでいます。プログラムが開発され、正式な製品になるとき、予期しないエラー メッセージをユーザーに表示するのではなく、エラー ログに記録することを望んでいます。ユーザーはスクリプト パス、データベース情報、またはその他のエラー メッセージを公開するためにこれらを使用する可能性が高いためです。破壊的なハッキング操作を示します。
PHP エラー処理
PHP スクリプトの実行中にエラーが発生した場合、エラーの形式で処理されます。一部のエラーではスクリプトが終了して続行されます。エラーが報告された後に実行されますが、実行されない場合もありますので、詳細についてはマニュアルを参照してください。
php のエラー処理メソッドは次の構成オプションに基づいており、これらの構成はコード内で宣言するか、php.ini ファイル内で設定できます。これらの設定を頻繁に変更する必要がない場合は、php.ini ファイルに設定してコードをよりクリーンかつ簡潔にすることをお勧めします。
# 是否打印错误信息到浏览器/命令行界面 # 开发模式下建议开启,产品模式下强烈建议关闭 ini_set('display_errors', 'On'); # 是否记录错误信息到日志 # 开发模式和产品模式下都建议开启 ini_set('log_errors', 'On'); # 指定错误信息日志文件,若开启了 log_errors 选项,记得指定日志文件位置 # 要确保执行 php 脚本的系统用户拥有该文件的 write 权限,否则日志无法被写入 ini_set('error_log', '/usr/local/php/errors.log'); # 该选项用以设定错误报告的等级 # 等同于 error_reporting(E_ALL) # 无论开发模式还是产品模式下都建议开到E_ALL(报告所有的错误信息) # 产品模式下也需要设置此选项,因为关闭了 display_errors 并开启了 log_errors # 所以浏览器/命令行界面不会因此暴露报错信息 ini_set('error_reporting', E_ALL);
さらに、PHP は、コード内のエラー ログ ファイルにカスタマイズされたエラー情報を記録するための組み込み関数も開発者に提供します。
bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )
必須パラメータは message です。この関数を呼び出すと、 php.ini で定義された error_log ファイルにメッセージを書き込みます。
ユーザー定義のエラー処理
さらに、ユーザーは、関数
mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )
エラーを使用して、カスタマイズされた方法で実行されるスクリプトを処理できます。ユーザーが error_handler を登録し、error_types を指定したときに発生するエラーは、これらの error_types のエラーが発生した場合、PHP の標準エラー ハンドラー
がバイパスされます (つまり、エラー メッセージは出力されません。エラー メッセージは表示されません)。ログに記録されます)が、error_handler 内のハンドラーが実行されます。
この関数の詳しい使い方はマニュアル(https://www.php.net/manual/zh/function.set-error-handler.php)を参照してください。
推奨関連記事チュートリアル: php チュートリアル
以上が開発モードと製品モードでの PHP エラー処理の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。