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 相关文章推荐
基于mysql的论坛(2)
Oct 09 PHP
PHP中的extract的作用分析
Apr 09 PHP
php ci框架验证码实例分析
Jun 26 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
php自定义apk安装包实例
Oct 20 PHP
PHP实现懒加载的方法
Mar 07 PHP
PHP输出缓冲控制Output Control系列函数详解
Jul 02 PHP
PHP中__autoload和Smarty冲突的简单解决方法
Apr 08 PHP
php微信公众平台开发(三)订阅事件处理
Dec 06 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
php文件后缀不强制为.php的实操方法
Sep 18 PHP
Nginx+php配置文件及原理解析
Dec 09 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 程序员也要学会使用“异常”
2009/06/16 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
php中in_array函数用法探究
2014/11/25 PHP
PHP多线程类及用法实例
2014/12/03 PHP
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
Angularjs 滚动加载更多数据
2016/03/17 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
JavaScript中0和&quot;&quot;比较引发的问题
2016/05/26 Javascript
nodejs简单实现操作arduino
2016/09/25 NodeJs
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
简单了解常用的JavaScript 库
2020/07/16 Javascript
react-intl实现React国际化多语言的方法
2020/09/27 Javascript
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
Python实现多并发访问网站功能示例
2017/06/19 Python
浅析Git版本控制器使用
2017/12/10 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
Reebok官方旗舰店:美国知名健身品牌锐步
2019/01/07 全球购物
经济管理专业自荐信
2013/12/30 职场文书
财务学生的职业生涯发展
2014/02/11 职场文书
《二泉映月》教学反思
2014/04/15 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
创业计划书之甜品店
2019/09/18 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python