php中static静态变量的使用方法详解


Posted in PHP onJune 04, 2010

看看下面的实例:

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

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

本函数每调用Test()都会输出 $w3sky 的值并加一。
静态变量也提供了一种处理递归函数的方法。递归函数是一种自己调用自己的方法。写递归函数时要小心,因为可能会无穷递归下去,没有出口.务必确保 有方法来中止递归。以下这个简单的函数递归计数到 10,使用静态变量 $count 来判断何时停止:
静态变量与递归函数的例子:
<?PHP 
function Test() 
{ 
static $count = 0; 
$count++; 
echo $count; 
if ($count < 10) { 
Test(); 
} 
$count--; 
} 
?>

注: 静态变量可以按照上面的例子声明。如果在声明中用表达式的结果对其赋值会导致解析错误。
声明静态变量例子:
<?PHP 
function foo(){ 
static $int = 0;// correct 
static $int = 1+2; // wrong (as it is an expression) 
static $int = sqrt(121); // wrong (as it is an expression too) 
$int++; 
echo $int; 
} 
?>
PHP 相关文章推荐
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 PHP
探讨PHP使用eAccelerator的API开发详解
Jun 09 PHP
php取整函数ceil,floo,round的用法及介绍
Aug 31 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
Jun 19 PHP
kohana框架上传文件验证规则写法示例
Jul 14 PHP
PHP的引用详解
Feb 22 PHP
PHP正则验证Email的方法
Jun 15 PHP
PHP常用工具类大全附全部代码下载
Dec 07 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 PHP
PHP面向对象中new self()与 new static()的区别浅析
Aug 17 PHP
php关联数组与索引数组及其显示方法
Mar 12 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
Jun 04 #PHP
php Static关键字实用方法
Jun 04 #PHP
PHP var_dump遍历对象属性的函数与应用代码
Jun 04 #PHP
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
Jun 04 #PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 #PHP
php ftp文件上传函数(基础版)
Jun 03 #PHP
php下连接ftp实现文件的上传、下载、删除文件实例代码
Jun 03 #PHP
You might like
VOLVO车载收音机
2021/03/02 无线电
实用函数7
2007/11/08 PHP
Ajax PHP简单入门教程代码
2008/04/25 PHP
php fckeditor 调用的函数
2009/06/21 PHP
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
js生成的验证码的实现与技术分析
2014/09/17 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
bootstrap table服务端实现分页效果
2017/08/10 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
Vue的Options用法说明
2020/08/14 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
jenkins配置python脚本定时任务过程图解
2019/10/29 Python
Python运行异常管理解决方案
2020/03/09 Python
Python模拟登录和登录跳转的参考示例
2020/10/30 Python
python中not、and和or的优先级与详细用法介绍
2020/11/03 Python
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
用Python实现Newton插值法
2021/04/17 Python
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android