我想合并两个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