$a = 111; //定义全局变量$a -----------1
function abc() { ---------3
$a = 100; //函数内定义变量$a,此时$a=100
echo $a.'<br/>';
global $a; //引入全局变量$a后,就盖过了上面的$a,此时函数内只有一个$a,就是引进来的全局变量$a
echo $a.'<br/>';
$a = 55; //再次定义$a的值,因为之前函数内只剩全局变量$a,所以这次改变,改变的是全局变量$a的值
echo $a.'<br/>'; //到这里就再也没有导致$a的值发生改变的代码了,因此$a不再改变
}
echo $a.'<br/>'; //输出全局变量$a,因为还未执行abc(),所以全局变量$a值还是11 -------------2
abc(); //执行函数abc(),由上可得,全局变量$a变为55 ------------3
function abc() { ---------3
$a = 100; //函数内定义变量$a,此时$a=100
echo $a.'<br/>';
global $a; //引入全局变量$a后,就盖过了上面的$a,此时函数内只有一个$a,就是引进来的全局变量$a
echo $a.'<br/>';
$a = 55; //再次定义$a的值,因为之前函数内只剩全局变量$a,所以这次改变,改变的是全局变量$a的值
echo $a.'<br/>'; //到这里就再也没有导致$a的值发生改变的代码了,因此$a不再改变
}
echo $a.'<br/>'; //输出全局变量$a,因为还未执行abc(),所以全局变量$a值还是11 -------------2
abc(); //执行函数abc(),由上可得,全局变量$a变为55 ------------3
echo $a.'<br/>'; //在函数外输出的话,只能输出全局变量 -------------4
函数虽然定义的时候写的比较靠前,但是只有被调用时才会生效,所以如果没被调用,那么就可以无视他的存在,继续往下执行。