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 相关文章推荐
PHP 中文处理技巧
Apr 25 PHP
php feof用来识别文件末尾字符的方法
Aug 01 PHP
php visitFile()遍历指定文件夹函数
Aug 21 PHP
php邮件发送,php发送邮件的类
Mar 24 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
判断php数组是否为索引数组的实现方法
Jun 13 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
神盾加密解密教程(一)PHP变量可用字符
May 28 PHP
采用ThinkPHP中F方法实现快速缓存实例
Jun 13 PHP
学习php设计模式 php实现门面模式(Facade)
Dec 07 PHP
php设计模式之单例模式用法经典示例分析
Sep 20 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
Oct 03 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
smarty模板引擎之分配数据类型
2015/03/30 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
jquery监听div内容的变化具体实现思路
2013/11/04 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
JS替换字符串中指定位置的字符(多种方法)
2020/05/28 Javascript
Vue组件通信$attrs、$listeners实现原理解析
2020/09/03 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python实现红包裂变算法
2016/02/16 Python
python编程之requests在网络请求中添加cookies参数方法详解
2017/10/25 Python
Python实现自定义顺序、排列写入数据到Excel的方法
2018/04/23 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
对Python 检查文件名是否规范的实例详解
2019/06/10 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
详解python tkinter模块安装过程
2020/01/06 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
Django之全局使用request.user.username的实例详解
2020/05/14 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
2020/11/02 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
英国在线电子和小工具商店:TecoBuy
2018/10/06 全球购物
甜品店的创业计划书范文
2014/01/02 职场文书
大学生毕业鉴定
2014/01/31 职场文书
营销总监岗位职责
2014/09/16 职场文书
写给老婆的保证书
2015/02/27 职场文书
30岁前绝不能错过的10本书
2019/08/08 职场文书
Django使用redis配置缓存的方法
2021/06/01 Redis