【问题标题】:Unable to access array from included file when using require_once使用 require_once 时无法从包含的文件中访问数组
【发布时间】:2012-07-08 03:11:00
【问题描述】:

我的问题是,如果我使用 require_once 来包含具有数组的文件,则无法从包含它的文件中访问该数组。例如这是我的 foo.php 文件

<?php
$array['name'] = 'John';
$array['age'] = 34;
?>

这是我的 bar.php 文件

<?php
//if i use require here instead of require once, the var_dump returns true
require_once('foo.php');
//This would return null
var_dump($array);
?>

我怎样才能找到问题?

【问题讨论】:

  • 在您的 bar.php 中尝试 var_dump(file_get_contents('foo.php')); - 这只是确保您包含正确的文件,因为从您发布的内容来看,应该没有问题。我复制/粘贴了运行您的确切代码,以查看是否有一些最初的仅眼睛检查遗漏了,但它运行良好。

标签: php arrays require require-once var-dump


【解决方案1】:

好的,所以我刚刚解决了这个完全相同的问题。这是我遇到问题的原始设置。

<?php
require_once('SiteProcesses.class.php');
$login = new SiteProcess();

$login->testForLogin();

require_once('header.php');
require_once('settings.php'); # This is where the array was set

var_dump($array);
?>

当然输出是:

NULL

更多信息:

我在 'testForLogin()' 方法中都包含了 'settings.php' 文件以及“header.php”文件。我终于让数组在这个配置下正常工作:

<?php
require_once('settings.php'); # This is where the array was set

require_once('SiteProcesses.class.php');
$login = new SiteProcess();

$login->testForLogin();

require_once('header.php');

var_dump($array);
?>

现在脚本可以正常工作了。

array(2) { [1]=> string(1) "1" [2]=> string(1) "2" }

显然,在包含所有其他文件之后,在包含设置文件后尝试从设置文件调用数组时出现了问题。只需将设置文件作为第一个包含的文件对我有用。

**名称已更改以保护无辜者

**是的,我知道你们中的一些人在这篇文章中可能有不同的方式来做同样的事情,当然你认为你的方式更好。亚达亚达。请保留您的意见。如果我想要一种不同的方式,那么我会去寻找它。我不需要你在我的帖子中注入你不受欢迎的方式。谢谢。

【讨论】:

    【解决方案2】:

    没有问题。代码在 require_one 或 require 下运行良好。你做错了什么。

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2011-08-26
      • 1970-01-01
      • 2014-08-19
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多