이전 습관으로 인해 항상 include가 필요했습니다. 기본적으로이 두 함수는 똑같습니다. require가 파일이 존재하지 않아서 스크립트를 멈추게하는 경우 require를하는 것 외에 - include는 경고를 던지고 아무 일도 일어나지 않은 것처럼 스크립트를 계속 진행합니다.파일 포함 및 오류 처리
일반적으로 파일을 동적으로 포함 할 때 file_exists의 줄을 따라 뭔가를 사용합니다. 이 같은 상대 : 내가 틀렸다면
<?php if (file_exists($file)) { require $file; } else { /*error handling*/ } ?>
를 지금까지 내가 아는 한,이 널리 가장 좋은 방법은 그것을 처리하는 가장 효율적인 방법으로 인정되고, 저를 수정하시기 바랍니다.
하지만 빠르고 스마트 한 내 의견에 약간 것 같다 다른 접근 방식, 생각 : 나는 아직 그것을 테스트하지 않은
<?php if (!include $file) { /* error handling */ } ?>
, 그러나 그것은보다 더 빨리해야한다는 나에게 논리적 보인다 file_exists/include 콤보가 필요합니다. 포함 접근법이 필요로하는 하드 드라이브 상호 작용이 2 번 필요하기 때문입니다.
내 테스트에서 예상대로 작동합니다. 예상 범위를 상속하며이 변수에 설정된 변수에 액세스 할 수 있습니다.
이렇게하지 않는 이유가 있습니까?
편집 : 오타
편집 2 : 존재하지 않는 파일을 포함하려고 할 때이에 대한 하나 개의 인수가 던져 E_WARNING을 수 있습니다. 이를 포함하여 @를 전달하면 피할 수 있습니다. 이와 같이 :
<?php if([email protected] $file) { /* error */ } ?>
include 문의 반환 값은 반드시 1 또는 0 일 필요는 없습니다. 포함 된 파일의 return 문을 사용하여 배열을 반환 할 수 있습니다. 그 외에 메소드는 file_exists()보다 견고합니다 ... 파일 존재 확인 (또는 다른 검사)을 수행한다고해서 실제로 포함될 것이라는 것을 의미하지는 않습니다. – goat