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 相关文章推荐
多重?l件?合查?(二)
Oct 09 PHP
php GD绘制24小时柱状图
Jun 28 PHP
PHP EOT定界符的使用详解
Sep 30 PHP
PHP 中文处理技巧
Apr 25 PHP
php将会员数据导入到ucenter的代码
Jul 18 PHP
PHP 面向对象详解
Sep 13 PHP
wamp安装后自定义配置的方法
Aug 23 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
Oct 30 PHP
Laravel实现构造函数自动依赖注入的方法
Mar 16 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 PHP
PHP单元测试配置与使用方法详解
Dec 27 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
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
Javascript 读后台cookie代码
2008/09/15 Javascript
js showModalDialog弹出窗口实例详解
2014/01/07 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
vuejs如何配置less
2017/04/25 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
基于复选框demo(分享)
2017/09/27 Javascript
使用cookie绕过验证码登录的实现代码
2017/10/12 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
2019/02/21 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
微信小程序文章列表功能完整实例
2020/06/03 Javascript
详解template标签用法(含vue中的用法总结)
2021/01/12 Vue.js
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
Python读取YAML文件过程详解
2019/12/30 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
Html5 audio标签样式的修改
2016/01/28 HTML / CSS
美国著名手表网站:Timepiece
2017/11/15 全球购物
国际礼品店:GiftsnIdeas
2018/05/03 全球购物
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
专科毕业生学习生活的自我评价
2013/10/26 职场文书
超市后勤自我鉴定
2014/01/17 职场文书
高一作文之乐趣
2019/11/21 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
matlab xlabel位置的设置方式
2021/05/21 Python
mysq启动失败问题及场景分析
2021/07/15 MySQL