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,那么两个变量则不是同一个变量。

用全局变量的时候很少,不是太常见,基本上处理一些实在复杂的程序时会极偶然地用一用,因为有时候,会对站点安全带来一些隐患。