include
: 실제로는 존재하지 않거나 권한 문제로 읽어올 수 없는 경우에 warning 에러
require
: 실제로는 존재하지 않거나 권한 문제로 읽어올 수 없는 경우에 fatal 에러
즉, require
가 include
보다 더 강제력이 강함.
include_once
: include
를 한번만 실행
require_once
: require
를 한번만 실행 (but. 존재 하지 않을 경우 fatal 에러 발생)
ex)
//welcom.php
function welcome() {
return "Hello world!";
}
welcome();
//include_test.php
include 'welcome.php';
include 'welcome.php';
echo welcome();
//결과 : Hello world! 가 1번은 호출되고 그 다음엔 redeclare welcome 에러 뜸
//include_once_test.php
include_once 'welcome.php';
include_once 'welcome.php';
echo welcome();
//결과 : Hello world! 가 1번 호출
프로그램의 크기가 커져서 하나의 같은 함수를 include 가 여러번 중복으로 실행 됐을 경우 한번만 실행되도록 하기위함