requireとrequire_once
そふぃのPHP入門 >> PHP言語リファレンス >> 外部ファイル読み込み >> requireとrequire_once

requireとrequire_once

require文

require文は指定されたファイルを読み込み、評価します。この動作はinclude文と全く同じです。2つの文の違いはこれから説明します。

評価するというのは、実行すると思ってもらっていいです。ファイルに書かれている内容がただのHTMLならそのHTMLをブラウザに出力し、PHPスクリプトならそのスクリプトを実行します。

以下のような方法で指定する事ができます。

  1. <?php
  2. require "file.php"; //括弧なし
  3.  
  4. require('somefile.txt'); //括弧付き
  5.  
  6. //もちろんファイルへのパスを変数化することもできます
  7. $somefile = "file.txt";
  8. require $somefile;
  9. ?>

require文は指定したファイルが無い場合などのエラー時にはFatal Errorとして扱われます。つまり、読み込みに失敗した時などには処理が停止してしまうという事です。これに対してinclude文はWarningを出力しますが、処理は続行されます。

つまり、ファイルが無い場合に処理を停止したければrequire文、続行したければinclude文です。

さらに詳しい動作についてはinclude文にまとめて書いてありますのでそちらをご覧下さい。

require_once文

require_once文は名前の通り、一度だけrequireする文です。

どういう事かというと、ファイルがすでに読み込まれている場合は再読み込みをしないという事です。同じファイルが何回も読み込まれると関数の再定義などが起こり、エラーの原因となって困る時があります。(関数は再定義が不可能なのです)。それだけではなく、変数が再代入されて値が変わってしまったり、という事も起こり得ます。

そのような事が起こらないように1回だけ読み込ませるのがrequire_once文です。

PHP5徹底攻略
PHP5徹底攻略 PHPのバイブル、赤マンモスです。
独習PHP
独習PHP 入門から、PEAR、Smartyまで。