欢迎来到天天文库
浏览记录
ID:13262170
大小:32.50 KB
页数:3页
时间:2018-07-21
《php static静态局部变量和静态全局变量总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、PHPstatic静态局部变量和静态全局变量总结 使用静态局部变量的原因是它不能被外部使用,但是它的值依然在没此使用后保留。虽然使用全局变量可以实现相同的功能,但是它经常会造成意外。静态局部变量的特点: 1.不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它。倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值 2.静态局部变量只会初始化一次 3.静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空
2、字符(对字符变量);静态变量的初始值为0。 4.当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,pengyeguoji.com但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。 代码如下复制代码 functiontest() { static$var=5;//static$var=1+1;就会报错 $var++; echo$var.''; } test();//2 test();//3 test();//4 echo$var;//报
3、错:Notice:Undefinedvariable:var 关于静态全局变量 代码如下复制代码 //全局变量本身就是静态存储方式,所有的全局变量都是静态变量 functionstatic_global(){ global$glo; $glo++; echo$glo.''; } static_global();//1 static_global();//2 static_global();//3 echo$glo.'';//3 $a将会在包含文件b.inc中生效。 代码如下复制代码
4、php $a=1; include"b.inc"; ?> "; echo"functionout:$s1";////输出全局变量:outs1 //static变量测试 functioncount1(){ $num=0; $num++; echo$num.""; }
5、functioncount2(){// static$num=0; $num++; echo$num.""; } for($i=0;$i<10;$i++){ count1();//11111111111 } echo""; for($i=0;$i<10;$i++){ count2();//12345678910 } echo""; //全局变量在函数中运用,加global $a="php"; $b="java"; functionshow(){ echo$a;//无输出 glo
6、bal$b; echo$b;//定义global,输出java } show(); ?> 输出3 代码如下复制代码 在全局范围内访问变量的第二个办法,是用特殊的PHP自定义$GLOBALS数组 代码如下复制代码
7、a"]+$GLOBALS["b"]; } Sum(); echo$b; ?> 静态变量也提供了一种处理递归函数的方法。rczcqc.com递归函数是一种调用自己的函数 代码如下复制代码 functionTest() { static$count=0; $count++; echo$count;//12345678910 if($count<10){ Test(); } //$count--; } Test(); 总结 局部变量——用在函数内,作用域就是所在函数 全局变量——在函数外,作用域在整
8、个php文件(包含了include和require引入的文件),但在函数中不能读到,wxjd.net除非重新申明为global 静态变量——用在函数内,被调用完后,内存不释放,保留最后值,多用来统计累加。
此文档下载收益归作者所有