【问题标题】:Why I cannot get the return value of require_once function in PHP?为什么我无法在 PHP 中获取 require_once 函数的返回值?
【发布时间】:2014-12-03 04:03:42
【问题描述】:

我已经知道include_once 会根据包含该文件返回truefalse。我已阅读 a question on Stackoverflow about using 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);

有什么解决方法吗?

【问题讨论】:

  • 您需要运行自己的测试,但是从 require 中返回是一个边缘功能,如果它不支持返回数组,我不会感到惊讶。但不要害怕,只需将数组放在全局变量中并在需要后获取它。在这种情况下,PHP 缺乏模块化是您的优势。
  • @alexis,它通过使用 GLOBAL 工作。 tnx
  • @JohnConde 不正确
  • @alexis 不再是这种情况,things have changed over time(搜索“处理退货”)。
  • 谢谢,很高兴知道支持返回数组。 (无论如何我当时都在猜测:-))。

标签: php return require-once


【解决方案1】:

这表明该文件此时已被包含。

如果文件已经被包含,require_once 将返回 boolean 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

【讨论】:

    猜你喜欢
    • 2021-09-30
    • 1970-01-01
    • 2017-10-21
    • 2015-04-01
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多