ホームページ >バックエンド開発 >PHPチュートリアル >PHPで異常な割り込みをキャッチする方法

PHPで異常な割り込みをキャッチする方法

高洛峰
高洛峰オリジナル
2016-12-09 11:16:181268ブラウズ

はじめに

プログラマーなら誰でも、開発中に何らかの間違いや他の理由によるエラーに遭遇したことがあるかもしれません。もちろん、ユーザーがアプリケーションの制約に従わない場合、使用時にエラーが発生することもあります。この記事では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コードの実行が終了したとき完成しました


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。