我的问题是,如果我使用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);
?>
我怎样才能找到问题?
答案 0 :(得分:0)
没有问题。代码运行正常,包括require_one或require。你做错了什么。
答案 1 :(得分:0)
好的,所以我刚刚完全愚弄了这个完全相同的问题。这是我原来的设置,我遇到了问题。
<?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" }
显然,在包含所有其他文件之后,在包含设置文件之后尝试从设置文件中调用数组时出现问题。只需将设置文件作为第一个包含的文件就可以了。
** 名称已更改为保护无辜的
** 是的,我知道发生在这篇文章中的一些人可能有不同的方式做同样的事情,当然你认为你的方式更好。亚达亚达。请保持自己的意见。如果我想要一种不同的方式,那么我会去寻找它。我不需要你在我的帖子中注入你不受欢迎的方式。谢谢。