« PHP:str_replace()関数 | メイン | PHP:global »

2005年10月17日

PHP:require()関数・require_once()関数

require()関数:外部ファイルを取り込む
require_once()関数:外部ファイルを1回だけ取り込む
※機能はほぼ一緒なので、require_once()関数を優先的に使いましょう。

require()関数とrequire_once()関数外の違いは、require()関数は外部ファイルを取り込む回数に制限がないのに対して、require_once()関数は外部ファイルを1回だけ取り込みます。

たとえば、a.phpにb.phpをrequire()関数で取り込んだ場合、b.phpにa.phpのrequire()・include()命令が記述されていた場合、無限ループになります。これを防ぐためにも、何らかの特別な事情がない限りはrequire_once()関数を優先的に使いましょう。

※requireとincludeの違いについて
基本的に「外部ファイルを取り込む」という機能は同じですが、取り込みに失敗した時のエラー出力方法が違います。
require:エラー時にFatal Errorを出力し、プログラム処理を終了
include:エラー時にWarning(エラーメッセージ)を出力するが、処理は続行

エラーが起きても処理を続行したいプログラムの場合にはinclude、処理を中断したい場合にはrequireを使用しましょう。

■require使用例
・外部ファイルcommon.php
<?php

/* 曜日算出 */
function getYoubi($date){
    $sday = strtotime($date);
    $res = date("w", $sday);
    $day = array("日", "月", "火", "水", "木", "金", "土");
    return $day[$res];
}

?>

・プログラム本体main.php
<?php

require_once("common.php");
$nowWeek = getYoubi(20051017);
print $nowWeek;

?>

※上記main.phpを実行した結果、「月」が出力されます。

投稿者 wing : 2005年10月17日 18:28

コメント