include와 require는 특정파일을 화일내 불러와서 적용시킨다는 점에는 같다.
다만, 수행을 실패할 경우 include는 warning을 발생하지만 require는 Fatal Error를 발생시킨다.
그러므로 require가 훨씬 더 엄격하다고 볼 수 있다.
이 또한, PHP버전에 따라 약간의 다른 작용을 하기도 한다. 4.3.5이전 버전에서는 오류가 발생해도 수행을 멈추지 않고 계속 진행한다.
이와 비슷한 기능을 하는 것으로
include_once와 require_once가 있다.
이것은 프로그래머가 여럿이 협업을 할 때나 프로젝트가 복잡하여 동일한 화일이 인클루드를 여러번 할 수 있는 실수를 막기 위한 조치이다.
파일이 이미 포함되었는지 확인하여 특정 화일에 외부 화일이 여러번 인클루드되는 것을 막을 수 있다.
include_once는 PHP 4.0.1에서 추가되었다.
PHP5이전 버전을 사용할 경우에는 대소문자를 구별하지 않는 특정 운영체제(윈도우같은)에서 원하지 않는 결과를 얻을 수도 있다.
예:
<?php
include_once "a.php"; // a.php를 포함합니다.
include_once "A.php"; // 윈도우에서 또다시 a.php를 포함합니다. (PHP 5이전 버전에서)
?>
그누보드나 영카트를 보면 대부분의 페이지에서 반복되는 영역을 head.php와 tail.php로 만들어 필요한 곳에서 include하는 것을 볼 수 있다.
아래는 그누보드5의 index.php 내용이다.
--- 아 래 ---
<?php
define('_INDEX_', true);
include_once('./_common.php');
// 초기화면 파일 경로 지정 : 이 코드는 가능한 삭제하지 마십시오.
if ($config['cf_include_index']) {
if (!@include_once($config['cf_include_index'])) {
die('기본환경 설정에서 초기화면 파일 경로가 잘못 설정되어 있습니다.');
}
return; // 이 코드의 아래는 실행을 하지 않습니다.
}
if (G5_IS_MOBILE) {
include_once(G5_MOBILE_PATH.'/index.php');
return;
}
include_once('./_head.php');
?>
<h2 class="sound_only">최신글</h2>
<!-- 최신글 시작 { -->
<?php
// 최신글
$sql = " select bo_table
from `{$g5['board_table']}` a left join `{$g5['group_table']}` b on (a.gr_id=b.gr_id)
where a.bo_device <> 'mobile' ";
if(!$is_admin)
$sql .= " and a.bo_use_cert = '' ";
$sql .= " order by b.gr_order, a.bo_order ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
if ($i%2==1) $lt_style = "margin-left:20px";
else $lt_style = "";
?>
<div style="float:left;<?php echo $lt_style ?>">
<?php
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
echo latest("basic", $row['bo_table'], 5, 25);
?>
</div>
<?php
}
?>
<!-- } 최신글 끝 -->
<?php
include_once('./_tail.php');
?>
등록된 댓글이 없습니다.