はじめに
プログラマーなら誰でも、開発中に何らかの間違いや他の理由によるエラーに遭遇したことがあるかもしれません。もちろん、ユーザーがアプリケーションの制約に従わない場合、使用時にエラーが発生することもあります。この記事ではPHPの例外処理にregister_shutdown_functionを使用する方法を中心に紹介しますので、必要に応じて一緒に学習してください。
詳しい例の説明
例えば、スクリプトが実行されたかどうかを判断するには、属性を false に設定し、実行が完了したときに true に設定することができます。最終的に、スクリプトで指定された方法によって判断されます。 register_shutdown_function 関数を実行し、次のコードに示すように、さらなる例外処理が実行されます。
class IndexController extends Controller { /** * 脚本执行是否完成 * @var bool */ protected $complete = false; public function __construct() { register_shutdown_function([$this, 'shutdown']); } /** * 异常处理 */ public function shutdown() { if ($this->complete === false) { dump('www.tanteng.me'); //此处应该输出日志并进行异常处理操作 } } }
この方法では、スクリプトが中断されているかどうかをすばやく特定し、register_shutdown_function を通じて例外を処理し、プログラムの堅牢性を向上させることができます。プログラム中断のステータスを記録し、ログを通じて問題を迅速に特定することが容易になります。
register_shutdown_function 実行メカニズム
PHP は呼び出される関数をメモリに転送します。この関数は、ページ上のすべての PHP ステートメントが実行されたときに呼び出されます。この時点では、PHP ページからではなくメモリから呼び出されることに注意してください。そのため、パス情報がある場合は、PHP が元のページが存在しないとすでに想定しているため、絶対パスを使用する必要があります。相対パスはまったくありません。
呼び出し条件は次のように理解できます:
1. ユーザーによってページが強制停止されたとき
2. プログラムコードが時間切れになったとき
3. PHPコードの実行が終了したとき完成しました