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 相关文章推荐
附件名前加网站名
Mar 23 PHP
基于PHP服务端图片生成缩略图的方法详解
Jun 20 PHP
php中调用其他系统http接口的方法说明
Feb 28 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
Jun 22 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
php计算2个日期的差值函数分享
Feb 02 PHP
PHP实现简单爬虫的方法
Jul 29 PHP
PHP使用递归算法无限遍历数组示例
Jan 13 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
Oct 10 PHP
Laravel 关联模型-关联新增和关联更新的方法
Oct 10 PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 11 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
Apr 07 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
PHP 观察者模式的实现代码
2013/05/10 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
2019/02/13 PHP
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
2013/11/07 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
Bootstrap模态对话框的简单使用
2016/04/29 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
[02:01]2018完美盛典-开场舞《双子星》
2018/12/16 DOTA
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
好的Python培训机构应该具备哪些条件
2018/05/23 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
安装docker-compose的两种最简方法
2019/07/30 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
基于HTML5代码实现折叠菜单附源码下载
2015/11/27 HTML / CSS
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
通息工程毕业生自荐信
2013/10/16 职场文书
航空大学应届生求职信
2013/11/10 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书
PHP新手指南
2021/04/01 PHP
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL