我有一个config.php文件,可以创建一个数组,比如
$config = array(
'foo' => 'bar'
);
function foo()
{
echo 'good';
}
我还有另一个打印东西的utility.php文件,这取决于config.php
require_once(-the absolute path to config.php-);
class Utility{
function bar()
{
echo count($config);
echo foo();
}
}
我的情况是我的index.php脚本依赖于config.php以及utility.php。 因此,当我包含foo.php时,我再次包含config.php。像
这样的东西require_once(-the absolute path to config.php-);
require_once(-the absolute path to utility.php-);
echo count($config);
utility::bar();
此功能打印出
1good
但是,当我尝试调用Utility :: bar时,它会为count($ config)打印0 - $ config数组永远不会在utility.php中创建,尽管count($ config)在索引中返回1。 PHP。有趣的是,在utility.php中调用函数foo()仍然会返回" good"。 制作$ config全局并没有改变任何东西(我听说是不好的风格)。
答案 0 :(得分:1)
看起来你有一个可变范围问题。阅读PHP变量范围。作为一个例子,我想如果你改变了
echo count($config);
到
global $config;
echo count($config);
它会起作用。