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设计模式 FlyWeight (享元模式)
Jun 26 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
Nov 01 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
Jan 03 PHP
destoon二次开发入门示例
Jun 20 PHP
自己写的php中文截取函数mb_strlen和mb_substr
Feb 09 PHP
php在数组中查找指定值的方法
Mar 17 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 PHP
laravel ORM 只开启created_at的几种方法总结
Jan 29 PHP
php进程daemon化的正确实现方法
Sep 06 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
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
PHP版自动生成文章摘要
2008/07/23 PHP
PHPCMS的使用小结
2010/09/20 PHP
PHP分页详细讲解(有实例)
2013/10/30 PHP
php递归删除目录与文件的方法
2015/01/30 PHP
PHP模拟QQ登录的方法
2015/07/29 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
2019/02/15 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
Vue路由切换页面不更新问题解决方案
2020/07/10 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
python字典值排序并取出前n个key值的方法
2018/10/17 Python
python生成器与迭代器详解
2019/01/01 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
python实现将文件夹内的每张图片批量分割成多张
2019/07/22 Python
python SocketServer源码深入解读
2019/09/17 Python
python爬虫快速响应服务器的做法
2020/11/24 Python
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
感恩小明星事迹材料
2014/05/23 职场文书
语文教师个人工作总结
2015/02/06 职场文书
水电施工员岗位职责
2015/04/11 职场文书
行政处罚事先告知书
2015/07/01 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
HttpClient实现表单提交上传文件
2022/08/14 Java/Android