[php] require, include, require_once와 include_once의 차이점은 무엇입니까?

PHP에서 :

  • 언제 requirevs.를 사용해야 include합니까?
  • 언제 require_oncevs.를 사용해야 include_once합니까?


답변

있다 requireinclude_once뿐만 아니라.

그래서 당신의 질문은 …

  1. 언제 requirevs.를 사용해야 include합니까?
  2. 언제 require_oncevs.를 사용해야합니까require

1에 대한 답변이 여기 에 설명되어 있습니다 .

require () 함수는 오류를 다르게 처리한다는 점을 제외하면 include ()와 동일합니다. 오류가 발생하면 include () 함수가 경고를 생성하지만 스크립트는 계속 실행됩니다. require ()는 치명적인 오류를 생성하고 스크립트가 중지됩니다.

2에 대한 답변은 여기 에서 찾을 수 있습니다 .

require_once () 문은 require ()와 동일합니다. 단, PHP는 파일이 이미 포함되어 있는지 확인하고, 포함되어 있으면 다시 포함시키지 않아야합니다.


답변

사용하다

  • 필요
    파일이 때 필요한 응용 프로그램에서 중요한 메시지 템플릿 또는 응용 프로그램이 중단 것이다없이 파일을 포함하는 구성 변수를 예.


  • 파일에 후속 포함시 오류가 발생하는 내용이 포함 된 경우 require_once ( 예 :
    function important() { /* important code */}응용 프로그램에 반드시 필요하지만 함수를 다시 선언 할 수 없으므로 다시 포함하지 않아야 함)


  • 파일이 필요하지 않을 때 포함 하고 응용 프로그램 흐름을 찾을 수 없을 때 계속해야합니다. 예를 들어
    현재 범위 또는 변수에서 변수를 참조하는 템플릿에 적합합니다.


  • 후속로드시 오류를 발생 시키거나 HTTP 오버 헤드로 인해 두 번 발생하지 않는 원격 파일 포함을 포함하는 include_once 선택적 종속성

그러나 기본적으로 어느 것을 사용할지는 당신에게 달려 있습니다.


답변

내 제안은 require_once시간의 99.9 %를 사용하는 것입니다.

사용 require또는 include대신에 당신의 코드가 당신이 당기는있는 스크립트가 실제로 재사용 다른 곳, 즉 아니라는 것을 의미한다 실행 하고 대신 코드를 사용할 수 클래스 또는 일부 함수 라이브러리를.

그 자리에서 실행되는 코드가 필요하거나 포함되어 있다면 절차 코드이므로 새로운 패러다임을 알아야합니다 . 객체 지향 프로그래밍, 함수 기반 프로그래밍 또는 기능 프로그래밍과 유사합니다.

이미 OO 또는 함수형 프로그래밍을 수행하는 경우 스택에서 버그 / 오류가 발견되는 위치 include_once를 사용 하면 대부분 지연 됩니다. do_cool_stuff()나중에 호출 할 때 함수 를 사용할 수 없거나 라이브러리를 요구하여 함수 를 사용할 수 있는 순간을 알고 싶습니까? 일반적으로 필요하고 기대하는 것을 사용할 수없는 경우 즉시 아는 것이 가장 좋습니다 require_once.

또는 현대 OOP에서는 사용시 클래스를 자동로드 하십시오.


답변

_once 함수와 _once 함수의 차이점 : _once 코드가 없으면 다시 포함되는 반면 _once 함수를 사용하면 PHP가 포함 된 파일을 추적하여 한 번만 포함합니다.

require와 include의 차이점 : 필요한 파일을 찾을 수 없으면 PHP는 치명적인 오류를 발생시키는 반면 include는 경고 만 발생합니다.


답변

include() 파일을 포함 할 수 없으면 경고가 발생하지만 나머지 스크립트는 실행됩니다.

require()E_COMPILE_ERROR파일을 포함 할 수없는 경우 스크립트 를 던지고 중지합니다.

include_once()require_once()이미 포함 된 경우 함수는 두 번째 파일을 포함하지 않습니다.

다음 설명서 페이지를 참조하십시오.


답변

require_once()현재 파일에서 한 번만 호출 된 파일이 필요할 때 파일에서 다른 파일을 포함 하여 사용할 수 있습니다. 여기 예제에서 test1.php가 있습니다.

<?php
echo "today is:".date("Y-m-d");
?>  

그리고 내가 test2.php라는 다른 파일에서

<?php
require_once('test1.php');
require_once('test1.php');
?>

test1 파일을 두 번 요구하는 m을 볼 때 파일에는 test1이 한 번 포함되며 두 번째 호출에는 무시됩니다. 멈추지 않으면 출력이 한 번만 표시됩니다.

‘include_once ()`를 사용할 때마다 현재 파일에서 호출 된 파일이 두 번 이상 필요할 때 다른 파일을 포함하기 위해 파일에서 사용할 수 있습니다. 여기 예제에는 test3.php라는 파일이 있습니다.

<?php
echo "today is:".date("Y-m-d");
?> 

그리고 내가 test4.php라는 다른 파일에서

<?php
include_once('test3.php');
include_once('test3.php');
?>

test3 파일을 포함하여 m이 파일을 한 번 포함하지만 추가 실행은 중단됩니다.


답변

재사용 가능한 PHP 템플릿 에는 “include”를 사용하십시오 . 필수 라이브러리에는 “필수”를 사용하십시오.

“* _once”는 파일이 이미로드되어 있는지 여부를 확인하기 때문에 좋지만 “require_once”에서만 의미가 있습니다.