学习要点
1.函数中使用全局变量global
2.在函数中使用 global 关键字实现变量访问
global是起传递参数的作用,而并非使变量的作用域为全局
global的正确用法是:"在一个函数中引入外部的一个变量,如果该变量没有通过参数传递进来,那么就通过global引入进来。" 也就是说,当一个函数引用一个外部变量时,可以在函数内通过global来声明该变量,这样该变量就可以在函数中使用了(相当于当作参数传递进来)
global的作用就相当于传递参数,在函数外部声明的变量,如果在函数内想要使用,就用global来声明该变量,这样就相当于把该变量传递进来了,就可以引用该变量了
除了通过上述方法外,还可以使用全局数组$GLOBALS来解决问题,在需要用到外部变量的地方,使用$GLOBALS['var']就可以了
使用 $GLOBALS 实现变量访问
<?php
//定义三个变量
$num1 = 6;
$num2 = 4;
$num3 = 0;
//在函数中使用 global 关键字实现变量访问
function s1()
{
//使用 global 声明全局变量
global $num1,$num2,$num3;
//使用全局变量进行运算
$num3=$num1 + $num2;
echo $num3;
}
//运行该函数
s1();
echo "<hr>";
//显示变量
echo $num3;//10
echo "<hr>"; //换行
//使用 $GLOBALS 实现变量访问
function s2()
{
//使用$GLOBALS操作变量
$GLOBALS['num3'] = $GLOBALS['num1'] + $GLOBALS['num2'];
}
//运行该函数
s2();
//显示变量
echo $num3;//10
?>
学习要点
静态变量 static $vars = 0;
<?php
//使用变量的例子
function vars()
{
$vars = 0;
echo $vars."<br>";
$vars++;
}
echo "第一次运行测试函数<br>";
vars(); //0
echo "第二次运行测试函数<br>";
vars(); //0
//使用静态变量的例子
function staticvar()
{
static $vars = 0;
echo $vars."<br>";
$vars++;
}
echo "第一次运行静态变量测试函数<br>";
staticvar();//0
echo "第二次运行静态变量测试函数<br>";
staticvar();//1
echo "第三次运行静态变量测试函数<br>";
staticvar();//2
?>