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

yipeiwu_com6年前PHP代码库
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实现的仿阿里巴巴实现同类产品翻页

如果左边的记录条数小于$space(页码区段)的值,页码$start从1开始向右增值。如果左则的记录条数多于$left(左右各显示页数)的值,$start将从左边记录数减去$left值开...

WordPress主题制作之模板文件的引入方法

get_template_part() 用来引用模板文件,类似于 get_header()、get_sidebar() 和 get_footer(),只不过这个 get_template...

晋城吧对DiscuzX进行的前端优化要点

最近,康盛的DX版本基本确定,至少短期内不会大变了,因此,我对晋城吧的整站进行了前端优化,把自己 所做的操作记录下来,一是有个记录,防止忘掉,二是和网上的朋友们共享下自己的心得。 前端...

php实现的简单检验登陆类

本文实例讲述了php实现的简单检验登陆类。分享给大家供大家参考。具体如下: <?php class checklogin { var $name; var $p...

php 传值赋值与引用赋值的区别

传值赋值:当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋予到目标变量。这意味着,例如,当一个变量的值赋予另一个变量时,改变其中一个变量的值,将不会影响到另一个变量。 复制代码...