php - 使用require_once时无法从包含的文件访问 array

  显示原文与译文双语对照的内容
0 0

我的问题是如果我使用require_once来包含一个 array,我不能从包含它的文件中访问该 array 。 例如这是我的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或者需要的情况下运行良好。 你在做别的错误。

原作者:
0 0

好吧,我只是对这个完全相同的问题 fooling 。 这是我的原始设置,我遇到了问题。


<?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'文件。 我最终使 array 能够正确地使用这里配置:


<?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" }

因此,在包含设置文件之后,在包含所有其他文件之后,试图从设置文件中调用 array 显然出错了。 只要把设置文件作为第一个包含的文件就可以了。

** 名称已经被更改以保护innocent的

** 是的,我知道,在这篇文章中,有些人可能会有不同的方式来做同样的事情,当然你认为你的方法是更好的。 好吧,请你把你的想法。 如果我想要一种不同的方式,我就去找它。 我不需要你在我的帖子里注入你的unwelcomed 。 谢谢你。

...