php 静态变量与自定义常量的使用方法


Posted in PHP onJanuary 26, 2010

⚑ 静态变量的声明与使用
⚑ 自定义常量的使用方式

什么是静态变量?
静态变量是指用static声明的变量,这种变量与局部变量的区别是,当静态变量离开了它的作用范围后,它的值不会自动消亡,而是继续存在,当下次再用到它的时候,可以保留最近一次的值。
下面举例:

<?php 
function add() 
{ 
static $i=0; 
$i++; 
echo $i; 
} 
add(); 
echo " "; 
add(); 
?>

这段程序中,主要定义了一个函数add(),然后分两次调用add()。
如果用局部变量的方式来分工这段代码,两次的输出应该都是1。但实际输出却是1和2。
这是因为,变量i在声明的时候被加上了一个修饰符static,这就标志着i变量在add()函数内部就是一个静态变量了,具备记忆自身值的功能,当第一次调用add时,i由于自加变成了1,这个时候,i就记住自己不再是0,而是1了,当我们再次调用add时,i再一次自加,由1变成了2。由此,我们就可以看出静态变量的特性了。
什么是自定义常量?
所谓自定义常量,就是指用一个字符标识来代表另外一个对象,这个对象可以是一个数值,一个字符串,一个布尔值等等。它的定义与变量有着许多相似之处。只有一点不一样,那就是变量的值在程序运行过程中可以任意更改,而自定义常量一旦定义下来后,在程序运行中就再也不能修改了。
定义方式如下:
define("YEAR","2012");
使用define关键字来将2012这个字符串绑定到YEAR上来,以后在程序当中出现YEAR的地方就用2012来代替。一般情况下,我们定义常量时,常量名都使用大写字母。
例:
<?php 
define("YEAR","2012"); 
define("MONTH","12"); 
define("DATE","21"); 
define("THING","Doomsday"); 
echo YEAR."-".MONTH."-".DATE." ".THING; 
?>

这段程序中,定义了四个常量,分别是YEAR,MONTH,DATE,THING,它们对应的值分别是2012,12,21,Doomsday,当我们用echo将它们连起来显示时,与变量不同的地方就在于没有使用“$”。
它的运行结果是:2012-12-21 Doomsday。
PHP 相关文章推荐
使用数据库保存session的方法
Oct 09 PHP
PHP执行速率优化技巧小结
Mar 15 PHP
PHP中Date获取时间不正确怎么办
Jun 05 PHP
全世界最小的php网页木马一枚 附PHP木马的防范方法
Oct 09 PHP
php学习之流程控制实现代码
Jun 09 PHP
php session劫持和防范的方法
Nov 12 PHP
完美的2个php检测字符串是否是utf-8编码函数分享
Jul 28 PHP
php使用APC实现实时上传进度条功能
Oct 26 PHP
php打包网站并在线压缩为zip
Feb 13 PHP
PHP实现统计所有字符在字符串中出现次数的方法
Oct 17 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 PHP
php学习之 认清变量的作用范围
Jan 26 #PHP
PHP 变量的定义方法
Jan 26 #PHP
php cout&amp;lt;&amp;lt;的一点看法
Jan 24 #PHP
php addslashes和mysql_real_escape_string
Jan 24 #PHP
PHPMailer 中文使用说明小结
Jan 22 #PHP
关于php fread()使用技巧
Jan 22 #PHP
PHP 时间转换Unix时间戳代码
Jan 22 #PHP
You might like
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
laravel 解决后端无法获取到前端Post过来的值问题
2019/10/22 PHP
textarea的value是html文件源代码,存成html文件的代码
2007/04/20 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
js 输出内容到新窗口具体实现代码
2013/05/31 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
基于angularjs实现图片放大镜效果
2016/08/31 Javascript
ES6新特征数字、数组、字符串
2016/10/01 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
vue.js绑定class和style样式(6)
2016/12/09 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
[02:56]DOTA2亚洲邀请赛 VG出场战队巡礼
2015/02/07 DOTA
在Django中创建动态视图的教程
2015/07/15 Python
Python Socket编程详细介绍
2017/03/23 Python
解决Python3.5+OpenCV3.2读取图像的问题
2018/12/05 Python
Python+threading模块对单个接口进行并发测试
2019/06/25 Python
实例详解Python装饰器与闭包
2019/07/29 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
求职信标题怎么写
2014/05/26 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
公司授权委托书
2014/10/17 职场文书
期中考试后的感想
2015/08/07 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript