const和define的区别
两者都是定义常量,有什么区别呢?
const:
const CONSTANT = 'aa'
在PHP5.3.0以后,可以使用const关键字在类定义之外定义常量。
使用const关键字定义常量必须处于最顶端的作用区域,因为用此方法是在编译时定义的。这就意味着不能在函数内,循环内以及if语句之内用const来定义常量。
define
define (string $name, mixed $value, [bool $case_insensitive=false]) :bool
在运行时定义一个常量,在PHP5中value必须是标量,在PHP7中还允许是个array的值。
$case_insensitive如果设置为true,该常量则大小写不敏感。
大小写不敏感的常量以小写的方式储存。
Note:
编译是指PHP语言经过zend引擎编译成opcode,opcode可以通过apc等方式缓存;