PHP中的static静态变量的使用方法详解
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静态变量的使用方法详解相关推荐
- python定义静态变量_对Pyhon实现静态变量全局变量的方法详解
python不能像C++一样直接定义一个static变量或者通过extern来导入别的库的变量而实现数据共享,但是python的思想是通过模块化来解决这个问题,就是通过模块来实现全局变量. 首先新建一 ...
- java 静态代码块_Java中的static静态代码块的使用详解
一.与静态方法的比较 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要 ...
- python中的class怎么用_对python 中class与变量的使用方法详解
python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...
- python中class变量_对python 中class与变量的使用方法详解
python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...
- Python的Django框架中forms表单类的使用方法详解2
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...
- mysql小计_Mysql必读用SQL实现统计报表中的小计与合计的方法详解
<Mysql必读用SQL实现统计报表中的"小计"与"合计"的方法详解>要点: 本文介绍了Mysql必读用SQL实现统计报表中的"小计&qu ...
- new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解
new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解 //获得年月日时分秒 //传入日期// ...
- Java中的static———静态变量
引言 static 是 java 语言中的关键字,意思是"静态的",它可以用来修饰变量.方法.代码块等,修饰的变量叫做静态变量,修饰的方法叫做静态方法,修饰的代码块叫做静态代码块. ...
- python中backward_pytorch的梯度计算以及backward方法详解
基础知识 tensors: tensor在pytorch里面是一个n维数组.我们可以通过指定参数reuqires_grad=True来建立一个反向传播图,从而能够计算梯度.在pytorch中一般叫做d ...
最新文章
- python学习之第三课时--基本数据类型及区别,变量
- WordPress 全方位优化指南(下)
- java 一次性输入与输出_Java入门——(7)IO(输入与输出)
- 一、搭建Python环境和安装Pycharm
- 洛谷-求同构数的个数-NOIP2013提高组复赛
- 数据库的数据类型及运算符
- Oracle sqlserver mysql的自增变量设置
- CCF201604-3 路径解析(解法三)(90分)(废除!!!)
- C语言,函数调用使用方法
- c语言 实现推箱子小游戏
- python弹幕分析_用Python抓取bilibili弹幕并分析
- Apereo CAS 5.0.X 默认提供的数据库认证的四种方式
- 网站头像上传(前台Ajax+后台PHP)
- 美国第四大医疗系统疑遭勒索软件攻击,2000万人资料或泄露
- WP7应用程序中添加麦克风支持
- 解决 笔记本 键盘进水 问题
- 数组和list之间的相互转换
- 基于lux的YouTube视频解析,下载
- c语言—学籍管理系统
- oracle系统中poord是什么,Oracle常用sql(持续更新)
热门文章
- 选择排序法python详解-Python选择排序算法(三)
- 计算机图形学在数学中的应用,计算机图形学的数学工具与C#实现:数学C
- 目标检测中召回率(Recall),精确率(Precision),平均正确率(Average_precision(AP) ),交除并(Intersection-over-Union(IoU))
- VS2013建立C++ dll库文件
- Linux设备驱动之I/O端口与I/O内存
- 列表查询,添加功能---JSP,servlet
- 【转】android IDE——通过DDMS查看app运行时所占内存情况
- golang sync WaitGroup
- 一个泛型冒泡排序的实现
- python-assert