我想合併兩個php項目。這兩個項目都使用全局變量,所以我想要有單獨的全局範圍。PHP:包含獨立的全球範圍
例子:
文件project1.php:
$var1 = 'var1';
function print1() {
global $var1;
echo $var1;
}
print1();
文件project2.php:
function load1() {
include('project1.php');
}
$var2 = 'var2';
function print2() {
global $var2;
echo $var2;
}
print2();
load1();
這將只是按預期執行項目2,但因爲$ VAR1不PROJECT1會失敗在全局範圍內,但在load1()的範圍內。
一個可能的解決方法是在load1()中調用global $var1
但是這會混合兩個全局作用域(messy)並且會很複雜,因爲reallive project2有許多全局變量,我將不得不檢查是否有任何新的每個更新的。
因此,如果我可以爲project1創建一個單獨的全局範圍,那將是最好的。那可能嗎?
現在,你知道爲什麼**不使用全局變量!! **準備意大利麪。 – JvdBerg
簡短回答:沒有。長答案:上帝沒有。您在這裏遇到的問題的實際解決方案是停止使用全局變量,並且只考慮您的頂級範圍,而不考慮是否是全局範圍。 – DaveRandom
你也可以嘗試命名空間爲不同的文件... – feeela