• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
陶阳昊
开发有风险,入坑需谨慎
博客园    首页    新随笔    联系   管理    订阅  订阅

PHP----------PHP函数里面的static静态变量

 很少用到static这个关键词,不管是类里面还是方法里面基本都没怎么用过。平时看到类里面有这个都没什么好奇的,今天在函数里面看到了这个,就去百度了一下。

<?php
function test1(){
    static $a = 0;
    $a++;
    echo 'test1的'.$a.'<br/>';
}
function test2(){
    $a = 0;
    $a++;
    echo 'test2的'.$a.'<br/>';
}
test1();
test1();
test2();
test2();
test1();

以上两个函数写在同一个文件下,先看下面运行结果

大家可以很容易的看出来,test1里面的$a是每调用一次test1就会在上次调用test1的基础上增加1,而且跟test2里面的$a没有任何关系。

那这里就总结一下static在函数里面定义变量的作用,(以上完全自己手敲没有复制外部资料。以下百度所得)

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

 

posted @ 2016-01-29 17:45  陶阳昊  阅读(2978)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3