PHP 개발 중에 포함 또는 요구 사항은 일반적으로 외부 파일을 소개하는 데 사용됩니다. 이 파일에는 코드를 구성하고 관리하는 데 도움이되는 기능, 클래스 또는 구성 파일이 포함되어있을 수 있습니다. 그러나 때로는 까다로운 문제가 발생할 수 있습니다. 파일을 소개 할 때 파일의 exit () 함수가 실행되어 전체 프로그램이 중단됩니다. 이런 일이 발생하지 않도록하려면 부주의하게 코드가 중단되는 것을 방지하기위한 효과적인 조치가 필요합니다.
EXIT () 함수는 현재 스크립트의 실행을 종료하는 데 사용되며 상태 코드 또는 문자열을 매개 변수로 전달할 수 있습니다. 기본적으로 상태 코드 0 을 보내어 스크립트가 정상적으로 종료됨을 나타냅니다. 0이 아닌 숫자 또는 문자열이 전달되면 운영 체제 또는 스크립트를 호출하는 외부 프로그램에 종료 상태 코드로 반환됩니다.
예를 들어:
<span><span><span class="hljs-keyword">exit</span></span><span>(); </span><span><span class="hljs-comment">// 정상적으로 종료하십시오,리턴 상태 코드 0</span></span><span>
</span><span><span class="hljs-keyword">exit</span></span><span>(</span><span><span class="hljs-string">'Error occurred'</span></span><span>); </span><span><span class="hljs-comment">// 오류 메시지로 종료</span></span><span>
</span></span>PHP 파일이 실행되면 exit () 호출되면 현재 스크립트의 실행이 즉시 중단됩니다. 이 파일을 포함 하거나 요구하는 다른 파일 에서이 파일을 도입 한 경우 포함 된 파일의 맥락에서 Exit () 가 실행되므로 호출되는 기본 파일이 중단되어 예측할 수없는 오류가 발생합니다.
파일을 소개 할 때 실수로 exit () 함수를 트리거하지 않도록하기 위해 다음 방법을 사용할 수 있습니다.
일반적으로 exit () 호출은 특정 비즈니스 논리에 의해 트리거되어야합니다. 따라서 파일을 도입 할 때 Exit () 호출은 불필요한 실행을 피하기 위해 적절한 조건부 진술서에 배치해야합니다. 가장 일반적인 관행은 Exit ()가 특정 환경에서만 유발되도록 판단 조건을 추가하는 것입니다.
예를 들어:
<span><span><span class="hljs-comment">// 이것이 구성 파일이라고 가정하십시오,포함하다 exit() 기능</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-string">'ALLOW_EXIT'</span></span><span>)) {
</span><span><span class="hljs-keyword">exit</span></span><span>(</span><span><span class="hljs-string">'Script has been terminated.'</span></span><span>);
}
</span></span>이 경우 exit ()는 constant allow_exit이 정의되지 않은 경우에만 실행됩니다. 파일이 도입되기 전에 allow_exit이 정의되면 exit () 가 트리거되지 않습니다.
exit () 함수의 논리를 독립적 인 함수로 캡슐화하고 exit ()가 호출되는 곳에서 특정 조건이 충족되는지 여부를 결정합니다.
예를 들어:
<span><span><span class="hljs-comment">// 在退出时封装一个退出기능</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">safe_exit</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$message</span></span></span><span> = </span><span><span class="hljs-string">''</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">some_condition</span></span><span>()) {
</span><span><span class="hljs-keyword">exit</span></span><span>(</span><span><span class="hljs-variable">$message</span></span><span>);
}
}
</span></span>이런 식으로, 우리는 종료해야 할 곳에서 safe_exit ()를 직접 호출 할 수 있으며, some_condition () 함수를 통해 종료할지 여부를 제어 할 수 있습니다.
PHP 프로젝트에는 일반적으로 헤더 파일, 데이터베이스 구성 파일, 도구 파일 등과 같은 일부 공개 파일이 있습니다.이 파일은 Exit () 호출을 직접 호출하는 것이 가장 좋습니다. exit () 가 특정 비즈니스 로직에서만 필요한 경우 EXIT 로직을 함수 또는 방법을 통해 제어 할 수 있으며 EXIT () 기능의 사용 범위는 특정 비즈니스 처리 모듈로 제한됩니다.
예를 들어:
<span><span><span class="hljs-comment">// 정상적인 상황에서,공개 파일에서 사용되지 않습니다 exit()</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">terminate_script</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$message</span></span></span><span>) {
</span><span><span class="hljs-keyword">exit</span></span><span>(</span><span><span class="hljs-variable">$message</span></span><span>);
}
</span></span>PHP의 오류 처리 메커니즘을 통해 예외 및 오류가 발생할 수 있으며 Exit () 실행은 주 프로그램의 작동에 영향을 미치지 않을 수 있습니다. PHP는 set_error_handler () 및 set_exception_handler () 와 같은 기능을 제공하므로 오류 및 예외 처리를 사용자 정의 할 수 있습니다.
예를 들어:
<span><span><span class="hljs-title function_ invoke__">set_error_handler</span></span><span>(function(</span><span><span class="hljs-variable">$errno</span></span><span>, </span><span><span class="hljs-variable">$errstr</span></span><span>) {
</span><span><span class="hljs-comment">// 처리 오류,직접 실행을 피하십시오 exit</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"An error occurred: <span class="hljs-subst">$errstr</span></span></span><span>";
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
});
</span></span>이러한 방식으로, 가져온 파일에서 오류가 발생하더라도 Exit () 프로그램은 프로그램을 방해하기 위해 직접 호출되지 않지만 사용자 정의 된 오류 처리 방법을 통해 처리됩니다.
PHP는 출력 버퍼 (출력 버퍼링) 기능을 제공하여 출력 컨텐츠를 일시적으로 저장하고 프로그램이 실행 된 후에 출력 할 수 있습니다. 또한 파일이 어느 정도 소개 될 때 Exit () 가 중단되는 것을 방지 할 수 있습니다.
예를 들어:
<span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();
</span><span><span class="hljs-keyword">include</span></span><span> </span><span><span class="hljs-string">'some_file.php'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>();
</span></span>OB_START () 가 버퍼를 시작하면 파일의 출력 내용이 일시적으로 저장됩니다. 파일이 소개 될 때 exit ()가 발생하더라도 출력 컨텐츠가 즉시 브라우저로 전송되지 않으므로 프로그램의 중단을 피합니다.
타사 라이브러리 또는 프레임 워크를 사용할 때는 공개 파일에서 exit () 호출 여부에 특별한주의를 기울여야합니다. 일부 프레임 워크 또는 라이브러리는 치명적인 오류가 발생할 때 스크립트를 종료하기 위해 Exit ()을 직접 호출하여 응용 프로그램에 영향을 줄 수 있습니다.
이를 피하기 위해 타사 파일을 소개 할 때 타사 파일을 확인하고 조정하여 실수로 프로그램 실행을 중단하지 않도록 할 수 있습니다. exit ()가 프레임 워크 또는 라이브러리 내에서 자주 호출되는 것을 발견하면 해당 라이브러리의 소스 코드를 수정하거나 개발자에게 연락하여 개선을 고려할 수 있습니다.
PHP 파일, 특히 대규모 응용 프로그램에서 실수로 Exit () 함수를 트리거하는 것을 피하는 것이 중요합니다. 특히 대규모 응용 프로그램에서 Exit () 의 부적절한 사용은 프로그램의 의도하지 않은 중단으로 이어질 수 있습니다. exit ()를 조건부 판단에 넣고 기능으로 캡슐화하고 오류 처리 메커니즘을 사용하고 출력 버퍼를 사용 하여이 상황이 효과적으로 발생하는 것을 방지하고 프로그램의 안정성과 신뢰성을 보장 할 수 있습니다.