include 文は指定されたファイルを読み込み、 評価します。
この処理は、include 文を処理する度に行われます。 このため、異なった複数のファイルを読み込むためにループ構造の中で include を使用することができます。
$files = array ('first.inc', 'second.inc', 'third.inc'); for ($i = 0; $i < count($files); $i++) { include $files[$i]; }
include は、 require とは 異なっています。つまり、include 文はその文の処理が行われる度に (実行時においてのみ)再度評価されますが、 require 文は、 (例えば、条件が FALSE となる if 文の中のように) 要求されたファイルの内容が評価されるかどうかにかかわらず 最初に読み込まれたファイルで置き換えられます。
include は 特殊な言語構造なので、条件ブロックの内部にある時には、命令ブロックの中に 入れておく必要があります。
/* 以下は誤っており、希望通りに動作しません。 */ if ($condition) include($file); else include($other); /* 以下が正解です。 */ if ($condition) { include($file); } else { include($other); }
ファイルが評価された際、パーサーは "HTML-mode" となっており、 PHP 開始タグ (<?) に合うまで、ファイルの内容が出力されます。
include およびrequire は共に 実際にターゲットファイルの中身を呼出側のファイル自体に読みこむことに 注意してください。ターゲットを HTTP のようなものを経由してコールする わけではありません。よって、 インクルードされるファイルは効率的に呼出側のファイルの一部になるため、 インクルードされた側のスコープで設定された全ての変数はインクルード されるファイルの中でも自動的に利用可能です。
include( "file.inc?varone=1&vartwo=2" ); /* 動作しません */ $varone = 1; $vartwo = 2; include( "file.inc" ); /* $varone および $vartwo は file.inc で利用可能です */
readfile, require, virtualも参照下さい。