PHP多次包含配置文件

时间:2012-06-19 00:16:02

标签: php include

我有一个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全局并没有改变任何东西(我听说是不好的风格)。

1 个答案:

答案 0 :(得分:1)

看起来你有一个可变范围问题。阅读PHP变量范围。作为一个例子,我想如果你改变了

echo count($config);

global $config;
echo count($config);

它会起作用。