The return value of include
via. http://www.urdalen.com/blog/?p=257
まあ、知ってる人は知ってると思いますが、inclue/include_onceはrequire/require_onceと違って値を返します。
たとえば、foo.phpで共通関数を定義してあった場合、
$ret = include 'foo.php'; var_dump($ret); // true
な感じです。これは知ってた。
で、foo.phpでreturn文で値を返していた場合、その値が返ってきます。たとえば、先ほどのfoo.phpがhttp://www.urdalen.com/blog/?p=257のconfig.phpみたいに
<?php return array( 'hostname' => 'localhost', 'database' => 'test', 'username' => 'test', 'password' => 'test', );
な場合、$retの値は
array(4) { ["hostname"]=> string(9) "localhost" ["database"]=> string(4) "test" ["username"]=> string(4) "test" ["password"]=> string(4) "test" }
になります。って、えー!知らんかった。。。まあ、使わないけど。というか、そもそもinclude/include_onceするファイルでreturnするのってどうかと。
ちなみに、include_onceを使って2回読み込む場合、
$ret = include_once 'foo.php'; var_dump($ret); $ret = include_once 'foo.php'; var_dump($ret);
1回目は配列、2回目はtrueが返ってきます。まあ、何となく想像できますが。
にしても、これが必要な場面って。。。