php中的变量只有单个作用域,就是说在函数内部不能使用全局变量。这个C,C++等其他语言有所区别。
如下面的这段代码:
<?php
$a = 1; /* global scope */
function test()
{
echo $a; /* reference to local scope variable */
}
test();
?>
此段代码会不输出任何东西,因为不能再test函数本地访问全局变量。
但是大家不用担心,php有自己的办法,比如使用global关键字即可在本地访问全局变量。如下:
<?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b;
?>
上面的代码会正常输出你预想的结果。同样的我们还可以使用$GLOBALS数组来访问全局变量,如下:
<?php
$a = 1;
$b = 2;
function Sum()
{
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}
Sum();
echo $b;
?>
大家可能会感到疑惑,为什么$GLOBALS数组能够访问全局变量呢,官方说$GLOBALS是超级全变量,换句话说就是能够访问全局变量的变量。好的今天的介绍就到这,如果喜欢请分享给你的好友。
参考:http://www.php.net/manual/en/language.variables.scope.php