刚开始学习PHP,在尝试变量范围时,我创建了这段代码:
<?php
$x = 5;
function scopeTest($x) {
global $x;
echo $x;
}
scopeTest(4);
?>
在给定函数中,我传递值4
,在函数中,该值存储在变量$x
中(函数的本地)。此代码的输出为5
而非4
。
我不知道值为4
的变量在哪里? 我知道我可以通过更改函数中的局部变量名来执行此操作,但我想知道此程序的流程,它是如何输出5
的。
局部变量$x
是否被全局变量$x
覆盖?
有没有办法在函数中访问局部变量$x
值4
?
答案 0 :(得分:1)
使用语句global
覆盖局部变量,由于它们共享相同的变量名,因此您失去了对它的引用。
但通过这样做,您可以同时使用:
$x = 5;
function scopeTest($x) {
echo $GLOBALS['x'], $x; // 54
}
scopeTest(4);
或..只需重命名本地变量
function scopeTest($y) {
global $x;
echo $x, $y;
}
答案 1 :(得分:1)
是您可以通过在全球$ x之前回显$ x来使用$ x的值4;
global $x; //replace the value of $x to it's global value.