이 글은 PHP Register_shutdown_function 함수에 대한 분석 및 소개입니다. 필요하신 분들은 참고하시면 됩니다.
스크립트는 자주 죽기도 하고, 항상 보기에 좋지는 않습니다. 치명적인 오류나 공백이 표시되는 것을 원하지 않습니다. (display_errors가 off로 설정된 경우) PHP에는 실행이 종료될 때 호출할 수 있는 다른 함수를 설정할 수 있는 함수가 있습니다. 즉, 스크립트가 실행될 때입니다. 예기치 않게 완료되거나 종료됩니다. PHP 실행이 종료되려고 할 때 우리 함수가 호출됩니다 따라서 스크립트 시작 부분에서 변수를 false로 설정한 다음, 다음 단계에서 이를 true로 설정하는 방법을 사용할 수 있습니다. PHP가 콜백을 닫도록 하는 스크립트 끝 이 함수는 스크립트가 완료되었는지 확인합니다. 변수가 여전히 false인 경우 스크립트의 마지막 줄이 실행되지 않았음을 알 수 있으므로 어딘가에서 죽었을 것입니다. 치명적인 오류를 표시해야 할 때 사용자에게 어떻게 적절한 피드백을 제공해야 하는지 보여주는 아주 기본적인 예제를 준비했습니다. 치명적인 오류 표시를 꺼서 예제를 더 보기 좋게 만들 수 있습니다(주석: display_errors를 설정할 수 있습니다).
코드 복사 코드는 다음과 같습니다.
$clean = false;
function shutdown_func(){
global $clean;
if (!$clean){
die( "완전 종료 아님");
}
return false ;
}
register_shutdown_function("shutdown_func");
$a = 1;
$a = new FooClass(); // 치명적인 오류로 인해 실패합니다
$clean = true;
?>
보시다시피 종료 콜백 함수가 실행 중일 때 clean 변수가 true로 설정되지 않으면 shutdown_func 함수가 무언가를 인쇄할 수 있습니다. (전역 변수를 사용하지 않음)
PHP는 스크립트가 종료되기 전에 등록된 함수, 즉 PHP 프로그램 실행이 완료된 후 실행되는 함수를 호출할 수 있는 Register_shutdown_function() 함수를 제공합니다.
register_shutdown_function 실행 메커니즘은 다음과 같습니다. PHP는 호출할 함수를 메모리로 전송합니다. 이 함수는 페이지의 모든 PHP 문이 실행되면 다시 호출됩니다. 이때는 PHP 페이지가 아닌 메모리에서 호출되므로 PHP가 이미 원본 페이지가 존재하지 않는다고 가정했기 때문에 위 예제에서는 상대 경로를 사용할 수 없습니다. 상대 경로가 전혀 없습니다.
참고: Register_shutdown_function 은 모든 PHP 문이 실행된 후 함수를 호출하는 것을 의미합니다. 클라이언트가 스트리밍 브라우저 페이지를 닫을 때 함수를 호출하는 것으로 이해하지 마세요.
다음과 같은 호출 조건을 이해할 수 있습니다.
1. 사용자에 의해 페이지가 강제로 중지된 경우
2. 프로그램 코드의 시간이 초과된 경우
3. 코드 실행 시 예외, 오류 및 경고
권장:
위 내용은 PHP Register_shutdown_function 함수 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!