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 相关文章推荐
从C/C++迁移到PHP——判断字符类型的函数
Oct 09 PHP
PHP_MySQL教程-第一天
Mar 18 PHP
PHP 面向对象实现代码
Nov 11 PHP
PHP安全技术之 实现php基本安全
Sep 04 PHP
php获取通过http协议post提交过来xml数据及解析xml
Dec 16 PHP
PHP Session 变量的使用方法详解与实例代码
Sep 11 PHP
php中调用其他系统http接口的方法说明
Feb 28 PHP
PHP6 中可能会出现的新特性预览
Apr 04 PHP
php代码检查代理ip的有效性
Aug 19 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
PHP实现微信提现功能
Sep 30 PHP
php扩展开发入门demo示例
Sep 23 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
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
浅谈JavaScript字符串与数组
2015/06/03 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
vue组件生命周期详解
2017/11/07 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
2018/09/20 jQuery
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
使用Python下载Bing图片(代码)
2013/11/07 Python
python处理cookie详解
2014/02/07 Python
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
python3 图片referer防盗链的实现方法
2018/03/12 Python
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
python将回车作为输入内容的实例
2018/06/23 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
python for循环remove同一个list过程解析
2019/08/14 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
Python-openCV开运算实例
2020/07/05 Python
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
斯福泰克软件测试面试题
2015/02/16 面试题
新入职员工的自我介绍演讲稿
2014/01/02 职场文书
淘宝网店营销策划书
2014/01/11 职场文书
西门豹教学反思
2014/02/04 职场文书
企业安全生产责任书
2014/04/14 职场文书
专科生就业求职信
2014/06/22 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
暑期社会实践个人总结
2015/03/06 职场文书