const和define()的区别

php定义常量的两种方法define()和conset 

这两种方法都可以定义常量,使用方法如下

const和define()的区别

但是他们有什么区别呢

1.使用位置不同,const可以在class内使用,class外使用,而define只能在class外使用

2.作用范围不同,const会受命名空间影响,define不受命名空间影响,如果const在class内定义,作用范围只在class内

const和define()的区别

const和define()的区别

而不同命名空间中定义同一个常量,会直接报错

const和define()的区别

const和define()的区别

注意:虽然const常量在不同的命名空间可以同时存在,但是在同一个命名空间中同名的const变量不会覆盖,而是会报错

const和define()的区别

const和define()的区别

综上所述,一般使用场景中,define一般用来定义全局常量,const一般在class内定义常量