web-dev-qa-db-ja.com

PHPでrequire_once関数の戻り値を取得できないのはなぜですか?

include_onceがそのファイルのインクルードに基づいてtrueまたはfalseを返すことはすでに知っています。私は読んだ require_onceの使用に関するStackoverflowの質問 値を返し、それを印刷します。

問題は、既存のプロジェクトが手元にあり、そのファイル内で配列を返すことです。 require_onceの出力を取得して、どのような結果が得られたかを確認したいのですが、データを含むarrayの代わりに1を取得します。

return array('data'=>$result_data,'error'=>null);

私がしていることは:

$ret = require_once $this->app->config('eshopBaseDir')."fax/archive.php";
print_r($ret);

これに対する回避策はありますか?

11
ALH

これは、ファイルがその時点ですでに含まれていることを示しています。

ファイルがすでに含まれている場合、require_onceはブール値trueを返します。

確認するには、単に要求するように変更できます。

$ret = require $this->app->config('eshopBaseDir')."fax/archive.php";
print_r($ret);

簡単な証拠として:

//test.php

return array('this'=>'works the first time');

//index.php

$ret = require_once 'test.php';
var_dump($ret);//array
$ret2 = require_once 'test.php';
var_dump($ret2);//bool true
18
Steve