PHP

[퍼옴] require(), require_once(), include(), include_once()의 차이점

bang2001 2014. 7. 9. 01:32

출처 : http://blog.naver.com/kjs_1225/70039540730



PHP에서의 다른 PHP 파일을 포함(include) 시키는 방법은 4가지가 있습니다.


- include()

include_once()

- require()

- require_once()


require()와 include()는 수행 실패를 다루는 방법과 특정 경우에 PHP 파일을 포함을 시킬지, 

아니면 무조건 PHP 파일을 포함시킬지 부분이 다르고, 그 외에는 동일합니다.


1. 수행 실패 시


include 계열의 함수는 수행 실패시 Warining이 발생하고,

require 계열의 함수는 수행 실패시 Fatal Error가 발생합니다.


즉, 포함시키고자 하는 PHP 파일이 없을 경우 프로그램 수행을 중단하고자 한다면 require 계열의 함수를, 그렇지 않고 포함시키고자 하는 PHP 파일이 없다는 메시지를 출력하고 나머지 프로그램을 계속해서 수행하고자 한다면 include 계열의 함수를 사용하시면 됩니다.



2. PHP 파일의 무조건 포함 여부에 따른

 

그리고 include 계열의 함수와 require 계열의 다른 차이점을 나타는 예제는 아래와 같습니다.

 

-----------------

$value = 0;

 

if( $value == 0 )

          include("A.php");

}

else

{

          require("B.php");

}

----------------

 

위에 코드는 A.php와 B.php를 모두 포함시킵니다. require()는 if문에 삽입된 조건식의 결과와 무관하게 실행되기 때문입니다. 여기서 value 변수의 값을 1로 바꾸면 B.php만 포함시키게 됩니다. 여기서 차이점을 아시리라 생각합니다.

 

마지막으로 _once()가 붙으면 한번만 실행한다는 의미를 가집니다. 이미 로딩되어 있다면 다시 로딩하지 않게 됩니다. 출처의 게시글 작성자는 _once()을 함수나 변수를 중복으로 실행시키고 싶지 않을 때 사용하면 될 것 같다고 하였습니다. (제 생각도 동일)