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取得一个类的属性和方法的实现代码
May 22 PHP
PHP mcrypt可逆加密算法分析
Jul 19 PHP
php线性表顺序存储实现代码(增删查改)
Feb 16 PHP
深入php处理整数函数的详解
Jun 09 PHP
php获取数组长度的方法(有实例)
Oct 27 PHP
php使用qr生成二维码的示例分享
Jan 20 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
Nov 03 PHP
typecho插件编写教程(三):保存配置
May 28 PHP
PHP实现的memcache环形队列类实例
Jul 28 PHP
详解Laravel视图间共享数据与视图Composer
Aug 04 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
PHP闭包定义与使用简单示例
Apr 13 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
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
2013/06/05 PHP
PHP中的替代语法简介
2014/08/22 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
2017/05/05 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
extjs form textfield的隐藏方法
2008/12/29 Javascript
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
2013/12/04 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
2017/04/11 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
详解webpack提取第三方库的正确姿势
2017/12/22 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
解决layui使用layui-icon出现默认图标的问题
2019/09/11 Javascript
js实现烟花特效
2020/03/02 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
Python函数式编程实例详解
2020/01/17 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
利用css3径向渐变做一张优惠券的示例
2018/03/22 HTML / CSS
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
机电职业生涯规划书范文
2014/03/08 职场文书
个人授权委托书
2014/04/03 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers