include와 require.. 그리고 include_once..
이 세넘(이외에도 많치만.. 흠..)의 차이가 너무 산만-_-하다..
어떤사람은 속도상의 문제로 차이를 크게 두는데.. 흠..
요새같은 인터넷환경에서.. 뭐가 문제래?
하지만.. 대용량의 파일을 리딩하는 경우에서는 문제가 될 수 있다.
물론.. 그렇게 페이지를 기획한것이 문제겠지만..
include와 require는 모든면에서 동일하다. 의미? 사용? 전부다 동일하다..
암튼 내 경우는 왠만하믄 require를 쓰고.. 루프 의 경우에만 반복문의 경우에만 include를 쓴다.
( 이건 사실.. 예전 버릇인데.. PHP4.0.2 이전버전에서는
require는 어떤줄도 수행되지 않는 목적 파일도 무작정 읽어 들이려 하기에 목적파일내에 포함된 코드가 계속 loop를 반복한다면,
require는 오직 한번만 발생했습니다. 따라서 loop구조에서의 require는 바람직하지 않았었죠. 지금은 전혀 상관이 없습니다. )
include는 디버깅이 좀 불분명해서ㅋㅋ
( include는 Error발생시 Warning을 반환하지만.. require는 Fatal Error를 반환한다. )
include_once는 include와 모든면에서 동일하지만
문서상에 이미 include되어있다면 다시 include시키지 않는다는 차이점이 있다.
암튼 문서-_-포함이란 (한글로 말하믄 열라 이상하다는.. 쿨럭.)
방식상 파서가 읽어서 대입시키기는 하는데 그것이 특별하게 포함을 시킨걸 읽던..
아님 문서하나에 있는 내용 읽던.. 큰 속도차이는 없다고 생각한다.
즉, 속도차이가 난다면 이는 알고리즘 문제라고 본다.ㅋ
파서는 include target document를 그대로 읽어다 붙이는 것일 뿐이기에..
(겁나게 긴 문서는 정말 읽기 짜증난다.. ㅎㅎ)
자.. 그래서 종합해보면..!!
include()
:일반적인 document Embeded 방식이다.
하지만 호출당할때마다 리딩을 주저하지 않는다는 특징과
Error발생시 Warning을 일으킨다는 특징이 있다.
require()
:include()와 대부분 동일한 수행을 한다.
하지만 호출당할때 문서를 코드 자체로서 인식하여 리딩하기에
include()보다는 속도가 빠르다. (뭐.. 코딱지만큼의 속도차이겠지만.. 쿨럭.)
그리고 Error발생시 Fatal Error를 발생시킨다.
include_once()
:include()와 대부분 동일한 수행을 한다.
하지만 문서에 이미 로드된 동일 문서가 있다면
include_once()는 더이상 include하지 않는다는 차이가 있다.
참고 : http://kr2.php.net/manual/kr/function.include.php
=================================================================================
어디까지나 제 생각입니다. 따라서 확실한 태클 대 환영..ㅋㅋ