摘要:定義的常量在當(dāng)前的命名空間中,而要定義執(zhí)行的命名空間,必須寫(xiě)出具體命名空間。定義常量,又叫宏定義,宏可以描述為根據(jù)一系列預(yù)定義的規(guī)則替換一定的文本模式。另外幾個(gè)問(wèn)題和定義的常量數(shù)組是否能改變其中的元素能否用來(lái)檢查定義的常量宏
php定義常量的方式有兩種define和const,兩者有什么區(qū)別?
const CONSTANCE = "const"; define("CONSTANCE", "const");const關(guān)鍵字從php 5.3以后可以在類(lèi)定義之外定義常量
const可以在類(lèi)內(nèi)部定義,而define不行。
const定義的常量在當(dāng)前的命名空間中,而define要定義執(zhí)行的命名空間,必須寫(xiě)出具體命名空間。
class Foo { const BAR = 2; } class Foo2 { define("BAR", 3); //無(wú)效的 } //命名空間的示例 namespace A{ const A1 = 1; //處在命名空間A中 define("A2", 2); //全局可調(diào)用 define("AA3", 3); //處在命名空間A中 } namespace B{ use const AA1; use const AA3; echo A1; echo A2; //全局調(diào)用 echo A3; }const是在編譯階段定義常量,define是在預(yù)處理階段定義常量
const在編譯階段就定義了常量,定義常量時(shí)必須處于最頂端的作用區(qū)域。
所以不能再if等條件語(yǔ)句中定義。
define定義常量,又叫宏定義,宏可以描述為根據(jù)一系列預(yù)定義的規(guī)則替換一定的文本模式。
define可以在分支中存在。
理論上,使用const處理速度比define會(huì)快一點(diǎn)點(diǎn)。
const只接受標(biāo)量數(shù)據(jù),(如integer, string, boolean和float等);define可以接受任意表達(dá)式define("BIT_5", 1<<5); const BIT_5 = 1<<5; //5.6之后才有效
從php 5.6起,const也可以接受數(shù)組和表達(dá)式const常量名只能是簡(jiǎn)單字符,define可以是任意表達(dá)式
define可以接受resource類(lèi)型,const不行
const STR = "string"; $i = 1; define("STR_" . $i, STR);
const大小寫(xiě)敏感,define可以通過(guò)第三個(gè)傳參控制大小寫(xiě)敏感。
另外幾個(gè)問(wèn)題const和define定義的常量數(shù)組是否能改變其中的元素?
能否用defined來(lái)檢查const定義的常量?
define vs const
宏
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/29894.html
摘要:前言項(xiàng)目地址如果有想要增加的特性,歡迎更新,然后。環(huán)境大致結(jié)論許多情況下下的特性表現(xiàn)相對(duì)更好。 前言 項(xiàng)目 github 地址:https://github.com/DavidCai1993/ES6-benchmark 如果有想要增加的特性 benchmark ,歡迎更新benchmarks/ ,然后 PR 。 環(huán)境 CPU: Intel Core(TM) i5-2410M 2.30...
摘要:根據(jù)調(diào)查,自年一來(lái),是最流行的編程語(yǔ)言。在一個(gè)函數(shù)體中聲明的變量和函數(shù),周?chē)淖饔糜騼?nèi)無(wú)法訪問(wèn)。也就是說(shuō)被大括號(hào)包圍起來(lái)的區(qū)域聲明的變量外部將不可訪問(wèn)。一個(gè)常見(jiàn)的誤解是使用聲明的變量,其值不可更改。 譯者按: 總結(jié)了大量JavaScript基本知識(shí)點(diǎn),很有用! 原文: The Definitive JavaScript Handbook for your next developer ...
摘要:發(fā)布插件插件開(kāi)發(fā)完后就可以發(fā)布了,需要安裝安裝完后,需要去注冊(cè)并生成一個(gè)??偨Y(jié)本文介紹了插件開(kāi)發(fā)的基本流程,實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的插件。更多的開(kāi)發(fā)技巧,可以看這個(gè)系列的第二篇插件開(kāi)發(fā)介紹二 前言 前段時(shí)間做了一個(gè)基于命令行的效率工具,可以自動(dòng)生成組件的模板代碼。自己用起來(lái)還覺(jué)得挺好,但在組內(nèi)案例幾次后大家都不愿意用,究其原因還是命令行工具使用起來(lái)門(mén)檻有點(diǎn)高,不方便。由于組內(nèi)已經(jīng)統(tǒng)一使用VS ...
閱讀 859·2021-11-22 09:34
閱讀 3906·2021-09-22 15:42
閱讀 1425·2021-09-03 10:28
閱讀 1220·2021-08-26 14:13
閱讀 2055·2019-08-29 15:41
閱讀 1510·2019-08-29 14:12
閱讀 3466·2019-08-26 18:36
閱讀 3443·2019-08-26 13:47