함수 처리 register_shutdown_function

(PHP 4, PHP 5, PHP 7, PHP 8)

register_shutdown_function — 종료 시 실행할 함수 등록


설명

register_shutdown_function(callable $callback, mixed ...$args): ?bool

스크립트 실행이 완료되거나 exit()가 호출된 후 실행할 callback을 등록합니다.

register_shutdown_function()을 여러 번 호출할 수 있으며 각각은 등록된 순서대로 호출됩니다. 하나의 등록된 종료 함수 내에서 exit()를 호출하면 처리가 완전히 중지되고 다른 등록된 종료 함수가 호출되지 않습니다.

종료 함수는 또한 register_shutdown_function() 자체를 호출하여 대기열 끝에 종료 함수를 추가할 수 있습니다.


매개변수

callback
등록할 종료 콜백입니다.

종료 콜백은 요청의 일부로 실행되므로 콜백에서 출력을 보내고 출력 버퍼에 액세스할 수 있습니다.

args
추가 매개변수를 전달하여 종료 함수에 매개변수를 전달할 수 있습니다.

반환 값

값이 반환되지 않습니다.


오류/예외

전달된 콜백을 호출할 수 없는 경우 E_WARNING 수준 오류가 생성됩니다.


Examples

예제 #1 register_shutdown_function() 예제

                  
<?php
function shutdown()
{
    // This is our shutdown function, in
    // here we can do any last operations
    // before the script is complete.

    echo 'Script executed with success', PHP_EOL;
}

register_shutdown_function('shutdown');
?>
                  
                

메모

메모: 스크립트의 작업 디렉토리는 일부 웹 서버의 종료 함수 내에서 변경될 수 있습니다. 아파치.

메모: SIGTERM 또는 SIGKILL 신호로 프로세스가 종료되면 종료 함수는 실행되지 않습니다. SIGKILL을 가로챌 수는 없지만 pcntl_signal()을 사용하여 exit()를 사용하여 깔끔하게 종료하는 SIGTERM에 대한 처리기를 설치할 수 있습니다.

메모: 종료 함수는 max_execution_time에서 추적한 시간과 별도로 실행됩니다. 즉, 프로세스가 너무 오래 실행되어 종료되더라도 종료 함수는 계속 호출됩니다. 또한 종료 함수는 실행되는 동안 max_execution_time이 소진되면 종료되지 않습니다.


기타