PHP에서 비정상적인 중단을 잡는 방법

高洛峰
풀어 주다: 2023-03-03 13:00:01
원래의
1254명이 탐색했습니다.

머리말

프로그래머라면 누구나 개발 중에 실수를 겪을 수도 있고, 다른 이유로 오류가 발생할 수도 있습니다. 물론, 사용자가 애플리케이션의 제약을 따르지 않거나 따르지 않는 경우에는 사용 시 일부 오류가 발생하기도 합니다. 이번 글에서는 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 코드 실행이 완료되면


관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿