const和define的區別

const和define的區別

二者都是定義常量,有什麼區別呢?緩存

const:

const CONSTANT = 'aa'

在PHP5.3.0之後,能夠使用const關鍵字在類定義以外定義常量。函數

使用const關鍵字定義常量必須處於最頂端的做用區域,由於用此方法是在編譯時定義的。這就意味着不能在函數內,循環內以及if語句以內用const來定義常量。code

define

define (string $name, mixed $value, [bool $case_insensitive=false]) :bool

運行時定義一個常量,在PHP5中value必須是標量,在PHP7中還容許是個array的值。string

$case_insensitive若是設置爲true,該常量則大小寫不敏感。it

大小寫不敏感的常量以小寫的方式儲存編譯

Note:
編譯是指PHP語言通過zend引擎編譯成opcode,opcode能夠經過apc等方式緩存;
相關文章
相關標籤/搜索