我有類似下面的一些PHP代碼:「命名空間」,常量和多個PHP包括
foreach ($settingsarray as $settingsfile)
{
include ($settingsfile);
// do stuff here
}
$ settingsarray是文件名從特定文件夾中的數組。
問題是,每個$ settingsfile定義的常量(具有相同的名稱),當然,這是不能重新定義的。
有什麼可能的方法來防止在這種情況下發生錯誤?
我能想到的兩個選項包括將所有常量改爲變量並使用PHP命名空間。
但是,我不知道如何去使用名稱空間,它需要在每個$ settingsfile的開始聲明?有沒有使用名稱空間隔離常量,可執行文件和函數的方法?
我真的很喜歡,是能夠做簡單的東西:
foreach ($settingsarray as $settingsfile)
{
{//added braces to indicate where the isolation is
include ($settingsfile);
// do stuff here
}//what happens in here does not affect what happens outside of here
}
我應該注意,這是一個新的功能的一部分,並且是代碼的唯一部分加載所有$ settingsfiles。其餘的代碼一次只加載一個文件。我使用常量的一個原因是,我不必擔心將變量「全局」定義爲能夠在函數內部訪問它們。
你有我想要做的正確。解決方案,我不想聽到。 (程序實際上非常複雜,這個代碼來自一個新的特性,其餘的代碼只在特定的時間加載一個設置文件,把所有的常量改爲變量將意味着改變所有的休息的代碼以及...) – Alya 2009-05-19 14:19:46