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

一、define() 函数定义一个全局常量

  1. 定义方式:define(name,value,case_insensitive),其中case_insensitive规定常量的名称是否对大小写敏感。默认为false(大小写敏感)。
  2. 注意事项
  • 设定以后常量的值无法更改
  • 在php脚本的任何作用域都可以直接访问
  • 变量名不需要开头的“$”符号
  • 常量值只能是字符串或数字

二、const关键字,声明常量

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

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

三、区别

  1. define不能在类中定义而const可以。
  2. 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通常会    产生更加可读的代码,但是以牺牲灵活性为代价的。

   


你可能感兴趣的:(PHP,常量,Const,define)