const和define的区别

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等方式缓存;
posted @ 2019-02-20 15:46  yeevan  阅读(266)  评论(0编辑  收藏  举报