현재 위치: > 최신 기사 목록> session_register_shutdown ()과 register_shutdown_function ()의 차이와 연결

session_register_shutdown ()과 register_shutdown_function ()의 차이와 연결

M66 2025-05-25

PHP 개발에서 프로그램이 닫힐 때 운영을 처리하는 것이 매우 중요합니다. 특히 리소스 릴리스 및 데이터 저장. 두 가지 함수 session_register_shutdown ()register_shutdown_function () 은 종종 언급되지만 해당 기능, 사용 및 해당 시나리오는 다릅니다. 이 기사는 차이점, 연결 및 응용 프로그램을 자세히 소개합니다.


1. 기능 소개

1. register_shutdown_function ()

이것은 PHP가 제공하는 일반적인 함수이며, 이는 PHP 스크립트 실행 후 자동으로 호출되는 콜백 함수를 등록하는 데 사용됩니다. 여러 콜백을 등록 할 수 있으며 등록 순서는 통화 순서를 결정합니다.

샘플 코드 :

 <?php
register_shutdown_function(function() {
    echo "스크립트가 실행됩니다,정리 작업을 수행하십시오。";
});
?>

PHP 스크립트가 실행되면이 등록 된 콜백 함수는 정상적으로 종료되는지 또는 치명적인 오류가 발생하는지 여부에 관계없이 실행됩니다.


2. session_register_shutdown ()

이것은 세션 모듈에 특별히 사용되는 기능입니다. register_shutdown_function ()을 내부적으로 호출하고 세션 종료 핸들러 기능을 자동으로 등록하여 PHP가 스크립트 끝에서 세션 데이터를 올바르게 닫고 저장하는지 확인합니다.

PHP 5.4 이후,이 기능은 폐기 된 것으로 표시되어 있으며 계속 사용하는 것이 좋습니다.

샘플 코드 :

 <?php
session_start();
session_register_shutdown();
$_SESSION['name'] = '장 산';
?>

호출 후 세션 모듈은 스크립트 끝에서 자동으로 WriteBack 작업을 수행합니다.


2. 둘의 차이

측면 session_register_shutdown () register_shutdown_function ()
기능적 위치 특별히 세션을 자동으로 등록하는 데 사용됩니다 일반, 레지스터 콜백 기능은 스크립트가 닫힐 때 호출됩니다.
매개 변수 등록은 매개 변수없이 내부적으로 자동으로 완료됩니다 콜백 함수를 전달해야하며 여러 매개 변수를 전달할 수 있습니다.
사용 범위 세션 모듈 만 스크립트의 임의의 콜백
호환성 PHP 5.4는 포기되어 권장되지 않습니다 현대 PHP 버전에 대한 일반적인 지원
행동의 시간 스크립트가 닫히면 세션 데이터가 작성되었는지 확인하십시오. 스크립트가 닫힐 때 사용자 정의 콜백 함수 호출

3. 둘 사이의 연결

Session_Register_Shutdown () 은 실제로 register_shutdown_function () 의 캡슐화이며, 특히 스크립트 끝에서 세션 데이터를 안전하게 작성할 수 있도록하는 데 사용됩니다. 이 두 가지 모두 PHP 실행 흐름 셧다운 단계에서 트리거되며 스크립트 셧다운 후크의 메커니즘에 속합니다.

간단히 말하면 :

  • session_register_shutdown () = register_shutdown_function () + 세션 닫기 로직

  • Session_Register_Shutdown ()을 사용하여 개발자가 수동으로 세션 쓰기 작업을 관리 할 수 ​​있습니다.


4. 시나리오를 사용하십시오

1. register_shutdown_function ()

  • 스크립트 끝에 로깅, 청소 자원, 폐쇄 데이터베이스 연결 및 기타 작업이 필요합니다.

  • 여파 수술은 예외 또는 치명적인 오류를 처리 한 후 수행됩니다.

  • 스크립트를 닫을 때 실행 해야하는 모든 기능을 사용자 정의하십시오.

예:

 <?php
register_shutdown_function(function() {
    error_log("스크립트 실행 종료,로그에 쓰십시오");
});
?>

2. session_register_shutdown ()

  • 이전 버전의 PHP (5.3 이상)의 자동 등록 세션 쓰기에만 적합합니다.

  • 새 버전을 사용하는 것이 좋습니다. session_write_close ()를 호출하거나 PHP를 사용하여 자동으로 쓰는 것이 좋습니다.


5. 요약

기능 추천 주요 기능 사용 권장 사항
session_register_shutdown () 권장되지 않습니다 자동으로 등록 세션 쓰기 콜백 현대 프로젝트에서 더 이상 사용되지 않은 이전 버전과의 호환성에만 사용됩니다.
register_shutdown_function () 추천하다 콜백 함수를 닫으려면 모든 스크립트를 등록하십시오 광범위한 응용 범위, 유연하고 안정적입니다

최신 PHP 개발에서는 세션을 처리 할 때 직접 Session_Write_Close ()를 사용하는 것이 좋습니다. 폐쇄 중 다른 청소 작업의 경우 Code 호환성 및 유연성을 보장하기 위해 register_shutdown_function () 이 권장됩니다.


추가 참고 : URL 도메인 이름 교체 예제

코드에 URL이 포함 된 경우 예를 들어

 <?php
echo "웹 사이트를 방문하십시오: http://example.com/path";
?>

다음으로 대체해야합니다.