解析php中const与define的应用区别


Posted in PHP onJune 18, 2013

1、const用于类成员变量定义,一旦定义且不能改变其值。define定义全局常量,在任何地方都可以访问。
2、define不能在类中定义而const可以。
3、const不能在条件语句中定义常量

if (...) { 
    const FOO = 'BAR';    // invalid 
} 
but 
if (...) { 
    define('FOO', 'BAR'); // valid 
}

4、const采用一个普通的常量名称,define可以采用表达式作为名称。
const  FOO = 'BAR'; 
for ($i = 0; $i < 32; ++$i) { 
    define('BIT_' . $i, 1 << $i); 
}

5、const只能接受静态的标量,而define可以采用任何表达式。
const BIT_5 = 1 << 5;    // invalid 
but 
define('BIT_5', 1 << 5); // valid

6、const 总是大小写敏感,然而define()可以通过第三个参数来定义大小写不敏感的常量
define('FOO', 'BAR', true);  
echo FOO; // BAR 
echo foo; // BAR

总结:
使用const简单易读,它本身是一个语言结构,而define是一个方法,用const定义在编译时比define快很多。
PHP 相关文章推荐
PHP中全局变量global和$GLOBALS[]的区别分析
Aug 06 PHP
php保存二进制原始数据为图片的程序代码
Oct 14 PHP
php读取csv数据保存到数组的方法
Jan 03 PHP
PHP利用APC模块实现大文件上传进度条的方法
Oct 29 PHP
PHP的Yii框架的常用日志操作总结
Dec 08 PHP
php源码 fsockopen获取网页内容实例详解
Sep 24 PHP
降低PHP Redis内存占用
Mar 23 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
PHP面向对象程序设计之多态性的应用示例
Dec 19 PHP
PHP配置ZendOpcache插件加速
Feb 14 PHP
PHP implode()函数用法讲解
Mar 08 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
May 06 PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
Jun 18 #PHP
解析php中memcache的应用
Jun 18 #PHP
PHP实现的封装验证码类详解
Jun 18 #PHP
php empty()与isset()区别的详细介绍
Jun 17 #PHP
php include和require的区别深入解析
Jun 17 #PHP
浅析php header 跳转
Jun 17 #PHP
解析php中heredoc的使用方法
Jun 17 #PHP
You might like
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
PHP高手需要要掌握的知识点
2014/08/21 PHP
完美实现wordpress禁止文章修订和自动保存的方法
2014/11/03 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
php mysqli查询语句返回值类型实例分析
2016/06/29 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
PHP等比例压缩图片的实例代码
2018/07/26 PHP
超级强大的表单验证
2006/06/26 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
2016/12/06 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
Vue上传组件vue Simple Uploader的用法示例
2017/08/25 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
[02:11]完美世界DOTA2联赛10月28日赛事精彩集锦:来吧展示实力强劲
2020/10/29 DOTA
Python标准库之循环器(itertools)介绍
2014/11/25 Python
python操作sqlite的CRUD实例分析
2015/05/08 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
详解python eval函数的妙用
2017/11/16 Python
django输出html内容的实例
2018/05/27 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
pycharm 复制代码出现空格的解决方式
2021/01/15 Python
帕克纽约:PARKER NY
2018/12/09 全球购物
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
艺术设计专业个人求职信范文
2013/12/11 职场文书
重阳节活动主持词
2015/07/04 职场文书
Python何绘制带有背景色块的折线图
2022/04/23 Python
Java实现带图形界面的聊天程序
2022/06/10 Java/Android