來源:不言 發(fā)布時間:2019-01-11 10:55:38 閱讀量:926
本篇文章給大家?guī)淼膬?nèi)容是關(guān)于php中define和const有什么區(qū)別?(詳解),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
php定義常量的方式有兩種define和const,兩者有什么區(qū)別?
1 2 |
|
const關(guān)鍵字從php 5.3以后可以在類定義之外定義常量
const可以在類內(nèi)部定義,而define不行。
const定義的常量在當(dāng)前的命名空間中,而define要定義執(zhí)行的命名空間,必須寫出具體命名空間。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
const是在編譯階段定義常量,define是在預(yù)處理階段定義常量
const在編譯階段就定義了常量,定義常量時必須處于最頂端的作用區(qū)域。
所以不能再if等條件語句中定義。
define定義常量,又叫宏定義,宏可以描述為根據(jù)一系列預(yù)定義的規(guī)則替換一定的文本模式。
define可以在分支中存在。
理論上,使用const處理速度比define會快一點點。
const只接受標(biāo)量數(shù)據(jù),(如integer, string, boolean和float等);define可以接受任意表達(dá)式
1 2 |
|
從php 5.6起,const
也可以接受數(shù)組和表達(dá)式define
可以接受resource
類型,const
不行
const常量名只能是簡單字符,define可以是任意表達(dá)式
1 2 3 |
|
const大小寫敏感,define可以通過第三個傳參控制大小寫敏感。
const和define定義的常量數(shù)組是否能改變其中的元素?
能否用defined來檢查const定義的常量?
以上就是php中define和const有什么區(qū)別?