본문 바로가기
PHP

[PHP] include(), require(), include_once(), require_once()

by 똑똑한 영장류 2012. 12. 10.


php 파일 작성 시에, 외부 파일을 포함하기 위해 사용하는 함수가 4개가 있습니다.


include(), require(), include_once(), require_once()


include(), require() 는 함수가 실행될 때마다 매개변수로 입력한 파일을 포함합니다. 이들 함수의 매개변수는 파일의 위치를 지정합니다.


include('./test/a.php');

require('./test/a.php');


현재 디렉토리 아래에 test라는 디렉토리 내의 a.php를 포함시켜라..는 의미죠.

기능은 같지만, 이들 두 함수는 실행결과의 차이가 있습니다.


포함시키라고 지정해준 파일이 없을 경우,

include()는 warning을 표시하지만, require()는 fatal error 를 표시하고 실행이 중단됩니다.



그럼, _once 가 붙은 나머지 두 함수는 어떤 차이가 있을까요?


말그대로 한번만 포함시키라는 말입니다.


include('./test/a.php');

include('./test/a.php');


위의 경우에는 a.php 의 내용이 두번 포함이 됩니다. 쓸데없이 말이죠...


함수가 정의되어 있는 파일이라면, 2회 이상 포함시키게 되면, 같은 함수가 또 정의되어있다고 에러가 발생하게 되지요. 그런 상황을 피하기 위해, include_once()함수를 사용할 수 있습니다.

include_once('./test/a.php'); 로 한번 a.php를 성공적으로 포함시키고 나면, 이후 다시 a.php를 포함시키라고 해도, 포함을 시키지 않습니다.


그럼, require_once()는 어떨까요? once의 의미를 include_once()와 같이 수행합니다. 다만, 지정한 파일이 없을 경우, warning을 표시하는 include_once()와는 달리 fatal error 를 표시하고 실행이 중단되는 차이점이 있습니다.



 

여러번 포함

한 번만 포함

 warning

 include()

include_once()

 fatal error

 require()

 require_once()



이상!


'PHP' 카테고리의 다른 글

[PHP] mysqli 의 쿼리 결과 다루기  (0) 2012.12.12
[PHP] header()  (0) 2012.12.12
[PHP] md5(), sha1()  (0) 2012.12.11
[PHP] mysqli 로 쿼리 날리기  (0) 2012.12.11
[PHP] mysqli 접속 및 접속 끊기  (0) 2012.12.11

댓글