global $a; $a=5; function test(){ global $a; $a=12; } test(); echo $a; 函数内外的$a是同一个变量么
是的,是同一个
global表示全局的,这个关键字加在变量之前,会改变变量的有效域,不管它位于哪里。
global $a; //这里定义全局变量
$a=5; //赋值
function test(){
global $a; //这个变量就是你已经赋值的$a
$a=12; //再重新赋值
}
test();
echo $a; //12
如果不使用global,那么两个变量则不是同一个变量。
用全局变量的时候很少,不是太常见,基本上处理一些实在复杂的程序时会极偶然地用一用,因为有时候,会对站点安全带来一些隐患。