解析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 禁止页面缓存输出
Jan 07 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
Jun 18 PHP
php生成N个不重复的随机数实例
Nov 12 PHP
PHP类继承 extends使用介绍
Jan 14 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 PHP
一款简单实用的php操作mysql数据库类
Dec 08 PHP
深入解析PHP中foreach语句控制数组循环的用法
Nov 30 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
Aug 12 PHP
PHP多维数组排序array详解
Nov 21 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 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取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
php 删除cookie方法详解
2014/12/01 PHP
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
[原创]php逐行读取txt文件写入数组的方法
2015/07/02 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
JavaScript获取服务器端时间的方法
2016/11/29 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
使用Python写个小监控
2016/01/27 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
使用Python调取任意数字资产钱包余额功能
2019/08/15 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
基于python及pytorch中乘法的使用详解
2019/12/27 Python
Python各种扩展名区别点整理
2020/02/27 Python
实现向右循环移位
2014/07/31 面试题
银行授权委托书格式
2014/10/10 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android