Home > PHP > PHPのどうしようもなくくだらないテスト4 include_once

PHPのどうしようもなくくだらないテスト4 include_once

  • 2009-06-09 (火) 0:45
  • PHP

includeは何回でも読み込み直すし、include_onceは一回しか読み込まない(重複して読み込まない)、そんなことは私でも知っています。
気になったのは戻り値です。includeは読み込みに成功すると1を返します(マニュアル)。(ただしincludeするファイルの最後にreturn文を書いておけばなんでも返せる)

じゃあinclude_onceはどうなのか。特に2回読み込もうとしたときにどうなるのか。2回目は読み込まれないはずだからfalse返すんじゃね?という当然(?)の疑問に巡り会ったので確認してみました。


hoge.php
<?php
    echo "hoge\n";
?>

test.php:
<?php
    $result = include "hoge.php";
    echo $result . "\n";
    $result = include "hoge.php";
    echo $result . "\n";
    echo "\n------------------------\n";
    $result = include_once "hoge.php";
    echo $result . "\n";
    $result = include_once "hoge.php";
    echo $result . "\n";
?>

結果は


hoge
1
hoge
1
------------------------
1
1

つまり、読み込んではいないけど2回目以降も1を返す、ということみたいです。

ちなみに、includeもinclude_onceもファイルがなかったときにWarningを吐きますが、@includeってやれば黙ります。また、includeもinclude_onceも()はつけない方がいい感じです(include("hoge")でもいいけどあまり良くない)。

以上

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://red-treasure.com/report/wp-trackback.php?p=424
Listed below are links to weblogs that reference
PHPのどうしようもなくくだらないテスト4 include_once from コスミー報告書[社外秘]

Home > PHP > PHPのどうしようもなくくだらないテスト4 include_once

Search
Feeds
Meta
 合計:030592
 今日:0100 昨日:0361

Return to page top