2012-06-19 62 views
0

我有一個創建一個數組config.php文件,像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 

然而,當我嘗試調用實用::吧,它對於計數打印0($配置) - 在$配置陣列從未被創建utility.php,儘管count($ config)在index.php中返回1。有趣的是,在utility.php中調用函數foo()仍然返回「good」。 製作$ config global並沒有改變任何東西(我聽到的是不好的風格)。

+1

變量範圍,[這裏是一些在你的手冊閱讀](http://php.net/manual/en/language.variables.scope.php)。 – Wrikken

回答

1

它看起來像你有一個變量範圍問題。閱讀關於PHP變量範圍。作爲一個例子,我想如果你改變

echo count($config); 

global $config; 
echo count($config); 

它會工作。

+0

有趣的功能,它確實修復它。非常感謝! – wonton