register_shutdown_function 함수 세부 정보 - 스크립트 종료 시 콜백 함수 실행
6410 단어 function
callback
to be executed after script execution finishes or exit() is called. 1.각본은 항상 죽고, 항상 그렇게 예쁘지는 않다.사용자에게 치명적인 오류나 공백 페이지를 보여주고 싶지 않습니다. (display_errors가 off로 설정된 경우)PHP에 register_ 라는 게 있어요.shutdown_function의 함수는 닫을 때 호출될 수 있는 다른 함수를 설정할 수 있습니다.즉, 우리의 스크립트 실행이 완료되거나 의외로 죽어서 PHP 실행이 종료될 때, 우리의 이 함수는 호출될 것이다.따라서 우리는 스크립트 시작 부분에 변수를false로 설정하고 스크립트 끝에true로 설정하는 방법을 사용하여 PHP가 리셋 함수를 닫고 스크립트의 완성 여부를 검사할 수 있습니다.만약 우리의 변수가 여전히false라면, 우리는 스크립트의 마지막 줄이 실행되지 않았다는 것을 알 수 있기 때문에, 이것은 틀림없이 프로그램에서 어떤 사람이 처형될 때까지 실행될 것이다.나는 치명적인 오류가 표시될 때 사용자에게 어떻게 적당한 피드백을 해야 하는지 보여주는 아주 기본적인 예를 준비했다.치명적인 오류를 표시하는 것을 닫을 수 있습니다. (display_errors와 error_reporting을 설정할 수 있습니다.) 예를 보기 좋게 할 수 있습니다.
<?php
$clean = false;
function shutdown_func(){
global $clean;
if (!$clean){
die("not a clean shutdown");
}
return false;
}
register_shutdown_function("shutdown_func");
$a = 1;
//
$a = new FooClass();
$clean = true;
?>
2.PHP 제공 register_shutdown_function () 이 함수는 스크립트가 종료되기 전에 등록된 함수, 즉 PHP 프로그램이 실행된 후에 실행할 수 있는 함수입니다.
<?php
$starttime = microtime(true);
function Test()
{
$starttime = microtime(true);
if(!file_exists('test.txt')){
$Str = fopen('test.txt',"w+"); // apache
fwrite($Str," , :$starttime");
fclose($Str);
echo " ! :$starttime";
}
else
{
echo ' ';
}
}
register_shutdown_function('Test');
echo " :".$starttime."<br>";
for($i=0;$i<1000;$i++){
echo "Echo<br/>";
}
exit;
?>
3.register_shutdown_function 실행 메커니즘은: PHP가 호출할 함수를 메모리로 불러옵니다.페이지의 모든 PHP 문장이 완료되면 이 함수를 호출합니다.이때 메모리에서 호출됩니다. PHP 페이지에서 호출되지 않기 때문에 위의 예는 상대적인 경로를 사용할 수 없습니다. 왜냐하면 PHP는 이미 원래의 페이지가 존재하지 않기 때문입니다.기본적으로 현재 경로는apache의 경로입니다. (getcwd () 테스트를 사용할 수 있습니다. 구체적인 테스트는 매뉴얼을 보십시오.)
<?php
function test()
{
echo ' ';
// , 。
if($handle = fopen('D:/tx.txt',"w+"))
{
fwrite($handle, 'you are write after exit');
fclose($handle);
}
}
// , ; test 。
register_shutdown_function('test');
exit();
?>
주의:register_shutdown_function은 모든 PHP 문장을 실행한 후에 함수를 호출하는 것입니다. 클라이언트가 브라우저 페이지를 닫을 때 함수를 호출하는 것으로 이해하지 마십시오.호출 조건을 이해할 수 있습니다. 1. 페이지가 사용자에게 강제로 정지되었을 때;2. 프로그램 코드가 시간 초과로 실행될 때;3. PHP 코드가 완료되었을 때.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
콜백 함수를 Angular 하위 구성 요소에 전달이 예제는 구성 요소에 함수를 전달하는 것과 관련하여 최근에 직면한 문제를 다룰 것입니다. 국가 목록을 제공하는 콤보 상자 또는 테이블 구성 요소. 지금까지 모든 것이 구성 요소 자체에 캡슐화되었으며 백엔드에 대한 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.