php中的变量作用范围的另一个重要特性就是静态变量(static 变量)。静态变量仅在局部函数域中存在且只被初始化一次,当程序执行离开此作用域时,其值不会消失,会使用上次执行的结果。

 <?phpfunction Test(){$w3sky = 0;echo $w3sky;$w3sky++;}?>

本函数每次调用时都会将 $w3sky 的值设为 0 并输出 "0"。将变量加一的 $w3sky++ 没有其到效果,因为一旦退出本函数则变量 $w3sky 就不存在了。要写一个不会丢失本次计数值的计数函数,要将变量 $w3sky 定义为静态(static)的:

如下:

<?phpfunction Test(){static $w3sky = 0;echo $w3sky;$w3sky++;}?>

本函数每调用Test()都会输出 $w3sky 的值并加一。

静态变量也提供了一种处理递归函数的方法。递归函数是一种自己调用自己的方法。写递归函数时要小心,因为可能会无穷递归下去,没有出口.务必确保 有方法来中止递归。以下这个简单的函数递归计数到 10,使用静态变量 $count 来判断何时停止:

静态变量与递归函数的例子:

<?PHPfunction Test(){static $count = 0;$count++;echo $count;if ($count < 10) {Test();}$count--;}?>

注: 静态变量可以按照上面的例子声明。如果在声明中用表达式的结果对其赋值会导致解析错误。

声明静态变量例子:

<?PHPfunction foo(){static $int = 0;// correctstatic $int = 1+2; // wrong (as it is an expression)static $int = sqrt(121); // wrong (as it is an expression too)$int++;echo $int;}?> 

PHP中的static静态变量的使用方法详解相关推荐

  1. python定义静态变量_对Pyhon实现静态变量全局变量的方法详解

    python不能像C++一样直接定义一个static变量或者通过extern来导入别的库的变量而实现数据共享,但是python的思想是通过模块化来解决这个问题,就是通过模块来实现全局变量. 首先新建一 ...

  2. java 静态代码块_Java中的static静态代码块的使用详解

    一.与静态方法的比较 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要 ...

  3. python中的class怎么用_对python 中class与变量的使用方法详解

    python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...

  4. python中class变量_对python 中class与变量的使用方法详解

    python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...

  5. Python的Django框架中forms表单类的使用方法详解2

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

  6. mysql小计_Mysql必读用SQL实现统计报表中的小计与合计的方法详解

    <Mysql必读用SQL实现统计报表中的"小计"与"合计"的方法详解>要点: 本文介绍了Mysql必读用SQL实现统计报表中的"小计&qu ...

  7. new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解

    new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解 //获得年月日时分秒 //传入日期// ...

  8. Java中的static———静态变量

    引言 static 是 java 语言中的关键字,意思是"静态的",它可以用来修饰变量.方法.代码块等,修饰的变量叫做静态变量,修饰的方法叫做静态方法,修饰的代码块叫做静态代码块. ...

  9. python中backward_pytorch的梯度计算以及backward方法详解

    基础知识 tensors: tensor在pytorch里面是一个n维数组.我们可以通过指定参数reuqires_grad=True来建立一个反向传播图,从而能够计算梯度.在pytorch中一般叫做d ...

最新文章

  1. python学习之第三课时--基本数据类型及区别,变量
  2. WordPress 全方位优化指南(下)
  3. java 一次性输入与输出_Java入门——(7)IO(输入与输出)
  4. 一、搭建Python环境和安装Pycharm
  5. 洛谷-求同构数的个数-NOIP2013提高组复赛
  6. 数据库的数据类型及运算符
  7. Oracle sqlserver mysql的自增变量设置
  8. CCF201604-3 路径解析(解法三)(90分)(废除!!!)
  9. C语言,函数调用使用方法
  10. c语言 实现推箱子小游戏
  11. python弹幕分析_用Python抓取bilibili弹幕并分析
  12. Apereo CAS 5.0.X 默认提供的数据库认证的四种方式
  13. 网站头像上传(前台Ajax+后台PHP)
  14. 美国第四大医疗系统疑遭勒索软件攻击,2000万人资料或泄露
  15. WP7应用程序中添加麦克风支持
  16. 解决 笔记本 键盘进水 问题
  17. 数组和list之间的相互转换
  18. 基于lux的YouTube视频解析,下载
  19. c语言—学籍管理系统
  20. oracle系统中poord是什么,Oracle常用sql(持续更新)

热门文章

  1. 选择排序法python详解-Python选择排序算法(三)
  2. 计算机图形学在数学中的应用,计算机图形学的数学工具与C#实现:数学C
  3. 目标检测中召回率(Recall),精确率(Precision),平均正确率(Average_precision(AP) ),交除并(Intersection-over-Union(IoU))
  4. VS2013建立C++ dll库文件
  5. Linux设备驱动之I/O端口与I/O内存
  6. 列表查询,添加功能---JSP,servlet
  7. 【转】android IDE——通过DDMS查看app运行时所占内存情况
  8. golang sync WaitGroup
  9. 一个泛型冒泡排序的实现
  10. python-assert