工作一年了,一年里很少用到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.当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。

最新文章

  1. MFC listcontrol导出excel表格
  2. Hichart 资料收集
  3. Druid使用起步—在javaWeb项目中配置监控 连接池
  4. HTK学习2:工具使用
  5. 配置ubuntu虚拟机备忘
  6. C# 获取时间差(几天前,几小时前,几分钟前,几秒前)
  7. 教你如何拔取百度地图POI兴趣点
  8. 设计模式_Memento_备忘录模式
  9. javascript--”原路返回“
  10. python学习笔记之八:迭代器和生成器
  11. bootstrap3 响应式布局栅格式布局
  12. 程序员的自我救赎---3.2:SSO及应用案例
  13. Uva - 512 - Spreadsheet Tracking
  14. LeetCode算法题-Merge Two Binary Trees(Java实现)
  15. Thread中的join()方法
  16. 排错技能:任务管理器中追踪某w3wp.exe是哪个IIS站点的application pool
  17. Elasticsearch集群内的原理
  18. Implementing a CNN for Text Classification in TensorFlow
  19. py-day1 pycharm 的安装 以及部分设置
  20. oracle 将字符串转化为数值型to_number()

热门文章

  1. 数组的Clone方法
  2. BZOJ2322: [BeiJing2011]梦想封印
  3. Linux_CentOS6.5安装vncserver实现图形化访问
  4. java eclipse中的代码联动提示功能
  5. UWP ComboBox下拉选项滚动循环问题
  6. 类库,委托,is和as运算符,泛型集合
  7. JS中的window.setTimeout()详解
  8. HDU 2546
  9. NVelocity+Bootstrap tab控件 异常之
  10. 树莓派3b+ 用samba与windows共享文件