PHP static局部静态变量和全局静态变量总结

2015-01-24信息快讯网

使用静态局部变量的原因是它不能被外部使用,但是它的值依然在没此使用后保留。虽然使用全局变量可以实现相同的功能,但是它经常会造成意外

静态局部变量的特点:

1.不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它。倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值
2.静态局部变量只会初始化一次
3.静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);静态变量的初始值为0。
4.当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。

function test()
{
    static $var = 5;  //static $var = 1+1;就会报错
    $var++;
    echo $var . ' ';
}

 
test(); //2
test(); //3
test(); //4
echo $var; //报错:Notice: Undefined variable: var

关于静态全局变量:

//全局变量本身就是静态存储方式,所有的全局变量都是静态变量
function static_global(){
    global $glo;
    $glo++;
    echo $glo.'<br>';
}

static_global(); //1
static_global(); //2
static_global(); //3
echo $glo . '<br>'; //3

所以静态全局变量使用并不多。

PHP+FastCGI+Nginx配置PHP运行环境
PHP中的reflection反射机制测试例子
PHP的反射类ReflectionClass、ReflectionMethod使用实例
实例介绍PHP的Reflection反射机制
PHP中Fatal error session_start()错误解决步骤
Linux下创建nginx脚本-start、stop、reload…
PHP使用Session遇到的一个Permission denied Notice解决办法
PHP伪静态Rewrite设置之APACHE篇
php mb_substr()函数截取中文字符串应用示例
VB中的RasEnumConnections函数返回632错误解决方法
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
PHP的error_reporting错误级别变量对照表
PHP源码分析之变量的存储过程分解
PHP延迟静态绑定示例分享
destoon之URL Rewrite(伪静态)设置方法详解
浅析PHP的静态成员函数效率更高的原因
采用thinkphp自带方法生成静态html文件详解
使用配置类定义Codeigniter全局变量
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
神盾加密解密教程(一)PHP变量可用字符
PHP 字符串长度判断效率更高的方法
PHP代码优化之成员变量获取速度对比
php中的strpos使用示例
PHP中session变量的销毁
php处理restful请求的路由类分享
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
php中simplexml_load_string使用实例分享
php中的filesystem文件系统函数介绍及使用示例
PHP判断变量是否为0的方法
PHP下获取上个月、下个月、本月的日期(strtotime,date)
PHP内核探索:变量概述
PHP内核探索:变量存储与类型使用说明
PHP 动态生成静态HTML页面示例代码
PHP中实现生成静态文件的方法缓解服务器压力
PHP面向对象之旅:深入理解static变量与方法
php-perl哈希算法实现(times33哈希算法)
php二维数组排序方法(array_multisort usort)
php使用strtotime和date函数判断日期是否有效代码分享
使用PHP静态变量当缓存的方法
PHP 伪静态技术原理以及突破原理实现介绍
©2014-2024 dbsqp.com