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 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 PHP
Joomla下利用configuration.php存储简单数据
May 19 PHP
分享一个超好用的php header下载函数
Jan 31 PHP
ThinkPHP CURD方法之where方法详解
Jun 18 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
Nov 19 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
Dec 22 PHP
PHP简单判断手机设备的方法
Aug 23 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
Sep 22 PHP
PHP结合Vue实现滚动底部加载效果
Dec 17 PHP
php curl批处理实现可控并发异步操作示例
May 09 PHP
Yii框架引入coreseek分页功能示例
Feb 08 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
怎样在UNIX系统下安装php3
2006/10/09 PHP
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
2013/12/24 PHP
php实现根据字符串生成对应数组的方法
2014/09/22 PHP
PHP上传文件时自动分配路径的方法
2015/01/09 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
2016/03/21 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
jquery和javascript的区别(常用方法比较)
2013/07/04 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
Echarts之悬浮框中的数据排序问题
2018/11/08 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
Vue路由 重定向和别名的区别说明
2020/09/09 Javascript
echarts浮动显示单位的实现方法示例
2020/12/04 Javascript
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
python模拟哔哩哔哩滑块登入验证的实现
2020/04/24 Python
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
简约控的天堂:The Undone
2016/12/21 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
努力学习保证书
2015/02/26 职场文书
信用卡工作证明范本
2015/06/19 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书
python非标准时间的转换
2021/07/25 Python