php define與const的區別

1、在PHP中(PHP 4及以後),我們可以使用函數define()來定義常量,在PHP 5.3.0之後,可以使用PHP關鍵字const來定義常量

2、const本身就是一個語言結構,而define是一個函數;

由於函數define()定義的常量是在執行define()函數時定義的,因此可以在函數內、循環內、if語句內等函數能夠被調用的任何地方使用define()函數定義常量。

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

3、對值的表達式支持有差異

 雖然關鍵字constdefine()定義的常量值都只能爲null或標量數據(booleanintegerfloatstring類型)【php7+ 增加了array類型】以及resource類型(不推薦定義resource類型的常量,否則可能出現無法預知的結果)。

不過,由於關鍵字const定義常量是在編譯時定義的,因此const關鍵字定義的常量值的表達式中不支持算術運算符、位運算符、比較運算符等多種運算符,而這些運算符在define()函數定義常量時都是可以直接使用的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章