PHP 개발에서 프로그램이 닫힐 때 운영을 처리하는 것이 매우 중요합니다. 특히 리소스 릴리스 및 데이터 저장. 두 가지 함수 session_register_shutdown () 및 register_shutdown_function () 은 종종 언급되지만 해당 기능, 사용 및 해당 시나리오는 다릅니다. 이 기사는 차이점, 연결 및 응용 프로그램을 자세히 소개합니다.
이것은 PHP가 제공하는 일반적인 함수이며, 이는 PHP 스크립트 실행 후 자동으로 호출되는 콜백 함수를 등록하는 데 사용됩니다. 여러 콜백을 등록 할 수 있으며 등록 순서는 통화 순서를 결정합니다.
샘플 코드 :
<?php
register_shutdown_function(function() {
echo "스크립트가 실행됩니다,정리 작업을 수행하십시오。";
});
?>
PHP 스크립트가 실행되면이 등록 된 콜백 함수는 정상적으로 종료되는지 또는 치명적인 오류가 발생하는지 여부에 관계없이 실행됩니다.
이것은 세션 모듈에 특별히 사용되는 기능입니다. register_shutdown_function ()을 내부적으로 호출하고 세션 종료 핸들러 기능을 자동으로 등록하여 PHP가 스크립트 끝에서 세션 데이터를 올바르게 닫고 저장하는지 확인합니다.
PHP 5.4 이후,이 기능은 폐기 된 것으로 표시되어 있으며 계속 사용하는 것이 좋습니다.
샘플 코드 :
<?php
session_start();
session_register_shutdown();
$_SESSION['name'] = '장 산';
?>
호출 후 세션 모듈은 스크립트 끝에서 자동으로 WriteBack 작업을 수행합니다.
측면 | session_register_shutdown () | register_shutdown_function () |
---|---|---|
기능적 위치 | 특별히 세션을 자동으로 등록하는 데 사용됩니다 | 일반, 레지스터 콜백 기능은 스크립트가 닫힐 때 호출됩니다. |
매개 변수 | 등록은 매개 변수없이 내부적으로 자동으로 완료됩니다 | 콜백 함수를 전달해야하며 여러 매개 변수를 전달할 수 있습니다. |
사용 범위 | 세션 모듈 만 | 스크립트의 임의의 콜백 |
호환성 | PHP 5.4는 포기되어 권장되지 않습니다 | 현대 PHP 버전에 대한 일반적인 지원 |
행동의 시간 | 스크립트가 닫히면 세션 데이터가 작성되었는지 확인하십시오. | 스크립트가 닫힐 때 사용자 정의 콜백 함수 호출 |
Session_Register_Shutdown () 은 실제로 register_shutdown_function () 의 캡슐화이며, 특히 스크립트 끝에서 세션 데이터를 안전하게 작성할 수 있도록하는 데 사용됩니다. 이 두 가지 모두 PHP 실행 흐름 셧다운 단계에서 트리거되며 스크립트 셧다운 후크의 메커니즘에 속합니다.
간단히 말하면 :
session_register_shutdown () = register_shutdown_function () + 세션 닫기 로직
Session_Register_Shutdown ()을 사용하여 개발자가 수동으로 세션 쓰기 작업을 관리 할 수 있습니다.
스크립트 끝에 로깅, 청소 자원, 폐쇄 데이터베이스 연결 및 기타 작업이 필요합니다.
여파 수술은 예외 또는 치명적인 오류를 처리 한 후 수행됩니다.
스크립트를 닫을 때 실행 해야하는 모든 기능을 사용자 정의하십시오.
예:
<?php
register_shutdown_function(function() {
error_log("스크립트 실행 종료,로그에 쓰십시오");
});
?>
이전 버전의 PHP (5.3 이상)의 자동 등록 세션 쓰기에만 적합합니다.
새 버전을 사용하는 것이 좋습니다. session_write_close ()를 호출하거나 PHP를 사용하여 자동으로 쓰는 것이 좋습니다.
기능 | 추천 | 주요 기능 | 사용 권장 사항 |
---|---|---|---|
session_register_shutdown () | 권장되지 않습니다 | 자동으로 등록 세션 쓰기 콜백 | 현대 프로젝트에서 더 이상 사용되지 않은 이전 버전과의 호환성에만 사용됩니다. |
register_shutdown_function () | 추천하다 | 콜백 함수를 닫으려면 모든 스크립트를 등록하십시오 | 광범위한 응용 범위, 유연하고 안정적입니다 |
최신 PHP 개발에서는 세션을 처리 할 때 직접 Session_Write_Close ()를 사용하는 것이 좋습니다. 폐쇄 중 다른 청소 작업의 경우 Code 호환성 및 유연성을 보장하기 위해 register_shutdown_function () 이 권장됩니다.
코드에 URL이 포함 된 경우 예를 들어
<?php
echo "웹 사이트를 방문하십시오: http://example.com/path";
?>
다음으로 대체해야합니다.