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中文件下载功能实现超详细流程分析
Jun 13 PHP
php分页代码学习示例分享
Feb 20 PHP
ThinkPHP空模块和空操作详解
Jun 30 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
Sep 16 PHP
php强大的时间转换函数strtotime
Feb 18 PHP
PHP MVC框架skymvc支持多文件上传
May 26 PHP
yum命令安装php7和相关扩展
Jul 04 PHP
简单的pgsql pdo php操作类实现代码
Aug 25 PHP
详解Yii实现分页的两种方法
Jan 14 PHP
Thinkphp3.2实用篇之计算型验证码示例
Feb 09 PHP
php5.6.x到php7.0.x特性小结
Aug 17 PHP
thinkPHP事务操作简单案例分析
Oct 17 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
php 读取shell管道传输过来的内容
2010/03/01 PHP
PHP加密解密类实例分析
2015/04/20 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
2012/05/23 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
python 快速排序代码
2009/11/23 Python
python中对list去重的多种方法
2014/09/18 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
flask 实现token机制的示例代码
2019/11/07 Python
Python基于进程池实现多进程过程解析
2020/04/30 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
泰海淘:泰国king Power王权免税集团旗下跨境海淘综合型电商
2020/07/26 全球购物
数控专业个人求职信范例
2013/11/29 职场文书
迟到早退检讨书
2014/02/10 职场文书
委托书模板
2014/04/04 职场文书
宣传普通话标语
2014/06/27 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
机器人总动员观后感
2015/06/09 职场文书
导游词之包公祠
2019/11/25 职场文书