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 |
댓글