解析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 IDE phpstorm 常用快捷键

一、mac电脑phpstorm快捷键 command + a 全选 command + c 复制 command + v 粘贴 command + z 撤消 command + k 代码...

PHP对象、模式与实践之高级特性分析

本文实例讲述了PHP面向对象程序设计高级特性。分享给大家供大家参考,具体如下: 高级特性 包括: 1.静态方法和属性(通过类而不是对象来访问数据和功能) 2.抽象类和接口(设计,实现分离...

PHP多进程编程之僵尸进程问题的理解

PHP多进程编程之僵尸进程问题的理解 使用pcntl_fork函数可以让PHP实现多进程并发或者异步处理的效果:https://www.jb51.net/article/125789.h...

php中使用getimagesize获取图片、flash等文件的尺寸信息实例

如果你还想着通过解析swf文件头信息来获取flash文件的尺寸信息,那真的有点走远了。因为从PHP 4开始已经内置getimagesize函数来做这个事。其功能测定任何 GIF,JPG,...

php中替换字符串函数strtr()和str_repalce()的用法与区别

首先来看看这个php字符串替换函数 strtr()的两种用法: strtr(string,from,to) 或者strtr(string,array) 首先针对strtr函数第一种方式:...