不知道爲什麼我不能通過調用包含文件然後引用該數組的函數來修改數組。通過包含文件和函數訪問和修改數組
這裏的情況是:
的config.php:
$db['default']['password'] = "password";
$db['default']['database'] = "dbname";
check_if_local_file_exists(__FILE__);
function check_if_local_file_exists($calling_file)
{
$local_version = dirname($calling_file) . '/' . basename($calling_file , '.php') . '.local';
if (file_exists ($local_version)) {
@include_once($local_version);
}
} // function
config.local:
global $db;
$db['default']['password'] = "password_modififed";
$db['default']['database'] = "dbname_modified";
不知道爲什麼我無法修改check_if_local_file_exists函數包含的包含文件config.local中的$ db數組。
當我調用config.php中的check_if_local_file_exists(FILE)後,print_r($ db)根本沒有修改$ db數組。 。 。
爲什麼你添加@來抑制錯誤?可能會有警告說文件不能包含在內。也許嘗試一個要求。 – Jacob 2011-03-07 03:12:29
你確定你的config.local被包含在內嗎? – Jacob 2011-03-07 03:15:39
我刪除了@來抑制錯誤。你是對的,不需要它。我已經得出結論,config.local正在被包括在內。全局聲明之後的var_dump不會產生任何內容,從而確認這是範圍問題。 。 .my懷疑是因爲config.php包含在類或函數本身中。 – rciiipo 2011-03-07 03:57:00