__halt_compiler () 는 PHP의 특수 언어 구조입니다. 기능은 코드가 함수에 실행될 때 즉시 컴파일러의 구문 분석 및 후속 코드 실행을 중지하는 것입니다. 즉, __halt_compiler () 이후의 내용은 PHP 코드로 실행되지 않지만 스크립트 파일의 데이터로 직접 유지할 수 있습니다.
PHP 컴파일러를 중지하여 후속 코드를 계속 읽고 실행하십시오.
스크립트 끝에 임의의 데이터를 포함시킬 수 있으며, 종종 이진 데이터 또는 사용자 지정 메타 정보를 포함하는 데 사용됩니다.
한 번만 사용할 수 있으며 매개 변수와 함께 사용할 수 없습니다.
<?php
echo "실행을 시작하십시오\n";
__halt_compiler();
echo "이 코드는 실행되지 않습니다\n";
// 나중에 몇 가지 사용자 정의 데이터를 넣을 수도 있습니다
__HALT_COMPILER () 의 일반적인 사용은 PHAR 아카이브와 같은 독립적 인 PHP 파일을 만들거나 데이터를 스크립트에 직접 포함시키는 것입니다.
exit () (또는 동등한 다이 () )은 스크립트 실행을 종료하는 데 PHP에서 사용되는 함수입니다. 프로그램은 호출 직후에 실행 중지 중이며 상태 코드 또는 문자열은 출력으로 전달 될 수 있습니다.
스크립트 실행을 즉시 중지하십시오.
프롬프트 정보를 출력하거나 정수 상태 코드를 반환 할 수 있습니다.
일반적으로 오류가 발생하거나 작업을 완료 한 후에는 중지를 강제로 사용합니다.
<?php
echo "실행을 시작하십시오\n";
if (!file_exists("config.php")) {
exit("구성 파일이 존재하지 않습니다,프로그램 종료\n");
}
echo "구성 파일이 있습니다,계속 실행하십시오\n";
EXIT ()는 프로세스 제어, 치명적인 오류가 발생할 때 스크립트를 중지하거나 CLI 환경에서 프로그램 실행 상태를 반환하는 데 이상적입니다.
측면 | __halt_compiler () | 출구() |
---|---|---|
기능 | 컴파일러를 중지하여 후속 코드를 구문 분석하고 후속 데이터를 유지하십시오. | 스크립트 실행을 즉시 중지하고 메시지 또는 상태 코드를 출력하십시오. |
후속 코드를 실행할지 여부 | 후속 코드 실행이 없습니다 | 후속 코드 실행이 없습니다 |
후속 코드/데이터 처리 | 후속 코드는 원시 데이터로 간주되며 읽거나 처리 할 수 있습니다. | 후속 코드는 처리되지 않습니다 |
일반적인 용도 | 데이터, 자체 포함 파일, PHAR 아카이브를 포함시킵니다 | 실행, 오류 처리, 프로세스 제어 종료 |
여러 번 사용할 수 있습니다 | 한 번만 사용하십시오 | 여러 번 호출 할 수 있습니다 |
매개 변수를 가져올 지 여부 | 매개 변수를 가져올 수 없습니다 | 매개 변수를 사용할 수 있습니다 (문자열 또는 정수) |
맞춤형 데이터를 포함시킵니다 <br> 패키징 리소스 또는 구성과 같은 PHP 스크립트 파일에 데이터를 직접 첨부 해야하는 경우 PHP에 의해 해석되지 않고 데이터 영역을 보존하는 데이를 사용할 수 있습니다.
Phar 파일을 만듭니다
PHAR 형식은 본질적으로 __halt_compiler ()를 사용하여 아카이브 데이터 및 코드를 병합하는 자체 포함 PHP 아카이브 파일입니다.
코드 실행 방지 <br> 코드가 예기치 않게 실행되는 것을 방지하고 PHP에 의해 후속 데이터가 구문 분석되지 않도록합니다.
오류 처리 및 예외 종료 <br> 복구 할 수없는 오류가 발생하면 Exit ()를 사용하여 프로그램을 직접 중지하고 사용자에게 프롬프트하십시오.
명령 줄 스크립트 제어 흐름 <br> CLI 스크립트에서는 실행 결과에 따라 특정 상태 코드가 반환되며 스크립트의 자동 호출 및 관리가 용이합니다.
중단 된 프로세스 <br> 유효하지 않거나 위험한 코드를 계속 실행하지 않도록 특정 조건이 충족 될 때 프로그램 실행 중단.
요약하면, __halt_compiler () 및 exit () 는 모두 php 코드의 실행을 종료 할 수 있지만 __halt_compiler ()는 데이터 임베딩을위한 도구와 비슷하지만 exit ()는 일일 개발에서 흐름 및 예외를 처리하는 데 중요한 기능입니다. 그들의 차이와 용도를 이해하면 개발자가보다 강력하고 유연한 PHP 프로그램을 작성하는 데 도움이 될 수 있습니다.