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 相关文章推荐
Apache设置虚拟WEB
Oct 09 PHP
php实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
PHP常用代码大全(新手入门必备)
Jun 29 PHP
php文本转图片自动换行的方法
Mar 13 PHP
php实现加减法验证码代码
Feb 14 PHP
Yii操作数据库的3种方法
Mar 11 PHP
wordpress安装过程中遇到中文乱码的处理方法
Apr 21 PHP
ThinkPHP中数据操作案例分析
Sep 27 PHP
PHP图像裁剪缩略裁切类源码及使用方法
Jan 07 PHP
程序员的表白神器“520”大声喊出来
May 20 PHP
PDO::rollBack讲解
Jan 29 PHP
PHP crypt()函数的用法讲解
Feb 15 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
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
php合并数组并保留键值的实现方法
2018/03/12 PHP
js Dialog 实践分享
2012/10/22 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
js实现tab选项卡切换功能
2017/01/13 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
JavaScript设计模式之工厂模式简单实例教程
2018/07/03 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
Webpack5正式发布,有哪些新特性
2020/10/12 Javascript
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
[01:35]2018年度CS GO最佳战队-完美盛典
2018/12/17 DOTA
深入理解Python变量与常量
2016/06/02 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
python tkinter实现屏保程序
2019/07/30 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
Python configparser模块操作代码实例
2020/06/08 Python
Python文件操作模拟用户登陆代码实例
2020/06/09 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
推荐信格式范文
2014/05/09 职场文书
中标通知书
2015/04/17 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书