1.局部和全局作用域
php中在function体中定义的变量为局部变量,在function外定义的变量叫做全局变量
<?php $x=5; // 全局变量 function myTest() { $y=10; // 局部变量 echo "<p>测试函数内变量:<p>"; echo "变量 x 为: $x"; echo "<br>"; echo "变量 y 为: $y"; } myTest(); echo "<p>测试函数外变量:<p>"; echo "变量 x 为: $x"; echo "<br>"; echo "变量 y 为: $y"; ?>
使用define函数定义的全局变量可以直接在函数内部使用
$var1 = "fuck";
define("GREETING", "欢迎来到德莱联盟");
function var1()
{
global $var1;
echo $var1;
echo $GLOBALS[var1];
echo GREETING;
}
2. global关键字
在php中function体内无法使用全局变量,如果要使用的话,需要使用global关键字先声明在使用
<?php $x=5; $y=10; function myTest() { global $x,$y; $y=$x+$y; } myTest(); echo $y; // 输出 15 ?>
3.static作用域
当函数运行完毕时,函数内的变量都会被消除,如果还需要使用不希望被删除的话,使用static关键字。仅在第一次声明变量的时候使用。
<?php function myTest() { static $x=0; echo $x; $x++; } myTest(); myTest(); myTest(); ?>