1、我們通常把不經(jīng)常變的值定義成常量,常量一般用全部大寫(xiě)字母表示,前面不加美元符號(hào)$,默認(rèn)區(qū)分大小寫(xiě)。比如 文件路徑:const FilePath = 'commentBook.txt';就可以定義為常量。
創(chuàng)新互聯(lián)-云計(jì)算及IDC服務(wù)提供商,涵蓋公有云、IDC機(jī)房租用、樂(lè)山服務(wù)器托管、等保安全、私有云建設(shè)等企業(yè)級(jí)互聯(lián)網(wǎng)基礎(chǔ)服務(wù),服務(wù)熱線(xiàn):189808205752、一個(gè)常量一旦被定義,就不能再改變或取消定義。
3、常量只能包含標(biāo)量數(shù)據(jù)(boolean、integer、float和string)??梢远xresource常量,但應(yīng)盡量避免,因?yàn)闀?huì)造成不可預(yù)料的結(jié)果。
常量和變量有如下不同:
1、常量前面沒(méi)有美元符號(hào)($)
2、常量只能通過(guò)define()函數(shù)定義,而不能通過(guò)賦值語(yǔ)句
3、常量可以不用理會(huì)變量的作用域在任何地方定義和訪問(wèn)
4、常量一旦定義就不能重新定義或取消定義
5、常量的值只能是標(biāo)量
問(wèn):在php中定義常量時(shí),const和define的區(qū)別?
答:使用const使得代碼簡(jiǎn)單易讀,const本身就是一個(gè)語(yǔ)言結(jié)構(gòu),而define是一個(gè)函數(shù)。另外const在編譯時(shí)要比define快很多。
1、const可在類(lèi)中使用,用于類(lèi)成員變量的定義,一經(jīng)定義,不可修改。define不可以用于類(lèi)成員變量的定義,可用于全局常量。
class Car{
const CONS = '我是常量';
echo self::CONS; //如果從類(lèi)的內(nèi)部訪問(wèn)const或者static變量或者方法,那么就必須使用自引用的self,否則用$this
}
2、const是在編譯時(shí)定義,因此必須處于最頂端的作用區(qū)域,不能在函數(shù),循環(huán)及if條件中使用;而define是函數(shù),也就是能調(diào)用函數(shù)的地方都可以使用
if(){
const CONS = '我是常量'; //錯(cuò)誤
}
if(){
define('CONS','我是常量'); //正確
}
3、const是一個(gè)語(yǔ)言結(jié)構(gòu);而define是一個(gè)函數(shù),可以通過(guò)第三個(gè)參數(shù)來(lái)指定是否區(qū)分大小寫(xiě)。true表示大小寫(xiě)不敏感,默認(rèn)為false,即大小寫(xiě)敏感。
如:define('PI',3.14,true);
4、const只能采用普通的常量名稱(chēng),define可以采用表達(dá)式作為名稱(chēng)
const CONS = 'car';
for($i=0;$i<10;$i++){
define('BIT_'.$i,1<<$i);
}
5、const只能接受靜態(tài)的標(biāo)量,而define可以采用任何表達(dá)式
const CONS = 1<<5; //無(wú)效的常量
define('CONS',1<<5); //有效的常量
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。