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 相关文章推荐
NO3第三帝国留言簿制作过程
Oct 09 PHP
php cli模式学习(PHP命令行模式)
Jun 03 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
自定义session存储机制避免会话保持问题
Oct 08 PHP
PHP判断网络文件是否存在的方法
Mar 12 PHP
PHP中trim()函数简单使用指南
Apr 16 PHP
PHP编写的图片验证码类文件分享
Jun 06 PHP
PHP多进程编程总结(推荐)
Jul 18 PHP
php显示页码分页类的封装
Jun 08 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 PHP
laravel ajax curd 搜索登录判断功能的实现
Apr 17 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
在线短消息收发的程序,不用数据库
2006/10/09 PHP
PHP CKEditor 上传图片实现代码
2009/11/06 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
Angular 4 指令快速入门教程
2017/06/07 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
Linux Centos7.2下安装nodejs&amp;npm配置全局路径的教程
2018/05/15 NodeJs
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
详解webpack打包第三方类库的正确姿势
2018/10/20 Javascript
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
Python Socket编程入门教程
2014/07/11 Python
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
python基于xmlrpc实现二进制文件传输的方法
2015/06/02 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
python解析多层json操作示例
2019/12/30 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
2020/02/27 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
Python新手学习raise用法
2020/06/03 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
美国手机支架公司:PopSockets
2019/11/27 全球购物
测量实习生自我鉴定
2013/09/19 职场文书
社区工作者感言
2014/03/02 职场文书
模具专业自荐信
2014/05/29 职场文书
2014年审计工作总结
2014/11/17 职场文书
介绍信范文
2015/01/31 职场文书
2015年党日活动总结范文
2015/03/25 职场文书