您的位置:首页 > 编程语言 > PHP开发

PHP中常量以及const与define的区别

2013-06-04 10:52 281 查看
一、define() 函数定义一个全局常量

定义方式:define(name,value,case_insensitive),其中case_insensitive规定常量的名称是否对大小写敏感。默认为false(大小写敏感)。
注意事项

设定以后常量的值无法更改
在php脚本的任何作用域都可以直接访问
变量名不需要开头的“$”符号
常量值只能是字符串或数字

二、const关键字,声明常量

const声明常量的方式:const 常量名 = ‘值’;其中常量名一般为大写,不带'$'符号。

const可用于类成员常量定义,一旦定义不能改变其值,赋值之后不能改变,该常量成员可以由类作用域操作符"::"直接访问。

三、区别

define不能在类中定义而const可以。
const不能在条件语句中定义常量而define可以。

if (...) {

const FOO = 'BAR'; // invalid

}

but

if (...) {

define('FOO', 'BAR'); // valid

}

3.define()允许你在常量名和常量值中使用表达式,而const则都不允许。这使得define() 更加灵活。

const FOO = 'BAR';

for ($i = 0; $i < 32; ++$i) {

define('BIT_' . $i, 1 << $i);

}

4.const 总是大小写敏感,然而define()可以通过第三个参数来定义大小写不敏感的常量

5.效率

define()在执行期定义常量,而const在编译期定义常量。这样const就有轻微的速度优势, 但不值得考虑这个问题,除非你在构建大规模的软件。

6.因为define()更加灵活,你应该使用它以避免一些令人头疼的事情,除非你明确地需要类 常量。

使用const通常会 产生更加可读的代码,但是以牺牲灵活性为代价的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: