2014-10-08 94 views
6

我已经知道include_once将基于包含该文件返回truefalse。我已阅读a question on Stackoverflow about using require_once以返回您的价值并打印出来。为什么我不能在PHP中获取require_once函数的返回值?

问题是我有一个现有的项目在手中,并在该文件内返回一个数组。我想要得到的require_once输出,看我有什么结果,但我得到1而不是array包含数据:

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

我要做的就是:

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

有什么解决这个问题的方法?

+1

你需要运行自己的测试,但是从需要返回是这样的边缘如果它不支持返回数组,它不会让我感到惊讶。但不要害怕,只需将数组粘贴到一个全局变量中并在需要之后获取它。在这种情况下,PHP缺乏模块化是您的优势所在。 – alexis 2014-10-08 13:20:32

+0

@alexis,它通过使用GLOBAL工作。 tnx – ALH 2014-10-08 13:26:53

+0

@JohnConde这是不正确的 – Steve 2014-10-08 13:29:28

回答

10

这表明该文件已经包含在该点。

如果文件已包含,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 
相关问题