使用require_one时,无法从包含的文件访问数组


Unable to access array from included file when using require_once

我的问题是,如果我使用require_sonce来包含一个包含数组的文件,我就无法从包含它的文件访问该数组。例如,这是我的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);
?>

我该如何着手找到问题?

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

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

<?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()"方法和"header.php"文件中都包含了"settings.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" }

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

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

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