1、在PHP中(PHP 4及以後),我們可以使用函數define()
來定義常量,在PHP
5.3.0之後,可以使用PHP關鍵字const
來定義常量
2、const本身就是一個語言結構,而define是一個函數;
由於函數define()
定義的常量是在執行define()
函數時定義的,因此可以在函數內、循環內、if
語句內等函數能夠被調用的任何地方使用define()
函數定義常量。
由於const
關鍵字定義的常量是在編譯時定義的,因此const
關鍵字定義常量必須處於最頂端的作用區域。這也就意味着不能在函數內、循環內以及if
語句之內用const
來定義常量。
3、對值的表達式支持有差異
雖然關鍵字const
和define()
定義的常量值都只能爲null
或標量數據(boolean
,integer
,float
和string
類型)【php7+
增加了array類型】以及resource
類型(不推薦定義resource
類型的常量,否則可能出現無法預知的結果)。
不過,由於關鍵字const
定義常量是在編譯時定義的,因此const
關鍵字定義的常量值的表達式中不支持算術運算符、位運算符、比較運算符等多種運算符,而這些運算符在define()
函數定義常量時都是可以直接使用的。