我不知道我这样做的时候到底发生了什么:
$my_variable = 'foo';
function whatever(){
$my_variable = 'bar';
global $my_variable;
}
我知道,函数的范围内$my_variable
现在是“富”。
这是怎么回事内? 当我做$my_variable = 'bar';
我的函数中,我创建了一个局部变量。 当我做global $my_variable;
在下一行到底发生了什么? 当地一个被自动删除?
直到global
进行处理,该功能将使用本地bar
的varaible的副本。 一旦它宣布全球,本地版本是隐藏的(或者破坏,不知道...),只有全球版本。 例如:
$z = 'foo';
function whatever() {
echo $z; // warning: undefined variable
$z = 'bar';
echo $z; // bar
global $z;
echo $z; // foo
}
whatever();
是的 ,当地的一个被自动删除或可能是更好的措辞,它被替换为全局变量。
想想看这样的:
$GLOBALS['my_variable'] = 'foo';
function whatever(){
$my_variable = 'bar';
$my_variable = $GLOBALS['my_variable'];
}