浅析PHP中STATIC、CONST、 DEFINE的区别(归纳总结)

const与define的特点与区别

  1. const是语言结构,而define是函数。在常量编译时const所做的仅仅是替换即可,而define因为是函数,效率低于const。
  2. const支持的数据类型为:boolean,string,float,integer,const不支持表达式赋值。而define支持表达式赋值。
  3. const不可以在条件判断语句中使用,define可以在条件判断语句中使用。
  4. const可以在类中使用,define不可以。
  5. const严格区分大小写,define可以通过参数进行选择。
  6. const可以在类外部、类内部。但是不可以出现在函数中。

const与staic的区别

  1. const定义类成员属性时。一经定义不可修改。而static只相当于初始化类的时候设置一个默认值,在后续的操作中可以被改变,包括内部修改和外部修改。
  2. const与static在类内部所定义的成员属性均可以在不实例化该类的条件下在外部调用,而且调用方式一致: ”类名称::成员属性名称“(调用静态属性时要加$符号)
  3. const定义的类成员属性必须通过类名称在类外部调用。
  4. const定义的成员属性在内部调用时与静态成员属性一致均使用 “self::属性名称” 方式调用