时间:2021-07-01 10:21:17 帮助过:7人阅读
1、局部变量
局部变量是在函数内声明的变量,其作用域仅限于函数内部。函数的参数也是局部变量,区别在于,函数参数值来自被调用时传入的值。执行完毕后函数内部的动态变量都将被释放。
<?php function a($b){ $c = 1; echo "$b+$c = " . ($b+$c) . '<br />'; } a(2);//输出3 echo $b+$c;//函数外部的非法访问,报notice错误,并输出0 ?>
2、全局变量
在函数外定义的变量称为全局变量,作用域范围在定义变量开始到本程序文件的末尾。
另外,在函数中无法直接调用全局变量,需要使用关键字global,也可以使用$GLOBALS来代替global。$GLOBALS 是一个超全局变量。
<?php //示例1 $a = 1; $b = 2; function Sum(){ global $a, $b; $b = $a + $b; } Sum(); echo $b;//输出的结果是3 //示例2 $c = 1; $d = 2; function Sum() { $GLOBALS['d'] = $GLOBALS['c'] + $GLOBALS['d']; } Sum(); echo $d;//输出3 ?>
3、静态变量
静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。静态变量用static来声明的,未被static声明的默认是动态变量。其在函数执行完之后,内部的静态变量已然保存在内存中。仅在脚本执行期间,第一次调用该函数时被初始化。
<?php function test() { static $a = 0; echo $a; $a++; } test();//输出0 test();//输出1 ?>
静态变量也提供了一种处理递归函数的方法。递归函数是一种调用自己的函数。写递归函数时要小心,因为可能会无穷递归下去。必须确保有充分的方法来中止递归。以下这个简单的函数递归计数到 10,使用静态变量 $count 来判断何时停止
<?php function test() { static $count = 0; $count++; echo $count; if ($count < 10) { test(); } $count--; } ?>
相关推荐:
php变量范围
php变量范围,php全局变量与静态变量
php变量范围介绍_PHP教程
以上就是PHP变量范围详解的详细内容,更多请关注Gxl网其它相关文章!