[PHP-users 11495] Re: include_onceについて
WADA Masashi
php-users@php.gr.jp
Thu, 14 Nov 2002 14:47:20 +0900
和田です。
S.Okazaki wrote:
>では具体的にどう言った場合に、同じファイルを2度読み込むような事が
>あるのでしょうか?
>もしそう言う場面に出くわせば、include_once()の必要性がもっと理解できる
>と思うのですが…
皆さんが指摘されているように、ライブラリの依存関係で問題を回避
するため include_once がよく利用されます。
これ以外にも、次のスクリプトのように include するファイルが動
的に変化する状況でも include_once は有用ですね。
$arr = array(
1 => array("file" => "a.php", "class" => "ClassA"),
2 => array("file" => "b.php", "class" => "ClassB"),
3 => array("file" => "c.php", "class" => "ClassC"),
4 => array("file" => "a.php", "class" => "ClassA"),
5 => array("file" => "c.php", "class" => "ClassC")
);
// ... $arr は動的に変化する
$objarr = array();
foreach($arr as $key => $value) {
include_once($value["file"]);
eval("\$obj = new ${value['class']}();");
$objarr[] = $obj;
}
もちろん、利用する可能性があるすべてのファイルをあらかじめ
include しておく方法もありますが、スクリプトのパースにかかる負荷
を考慮し、必要なファイルだけ逐次 include するわけです。
----
和田雅志 (WADA Masashi)
wada@hh.iij4u.or.jp