新聞中心
1、我們通常把不經(jīng)常變的值定義成常量,常量一般用全部大寫字母表示,前面不加美元符號$,默認(rèn)區(qū)分大小寫。比如 文件路徑:const FilePath = 'commentBook.txt';就可以定義為常量。
成都創(chuàng)新互聯(lián)專注于梨樹企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。梨樹網(wǎng)站建設(shè)公司,為梨樹等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站建設(shè),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
2、一個(gè)常量一旦被定義,就不能再改變或取消定義。
3、常量只能包含標(biāo)量數(shù)據(jù)(boolean、integer、float和string)??梢远xresource常量,但應(yīng)盡量避免,因?yàn)闀斐刹豢深A(yù)料的結(jié)果。
常量和變量有如下不同:
1、常量前面沒有美元符號($)
2、常量只能通過define()函數(shù)定義,而不能通過賦值語句
3、常量可以不用理會變量的作用域在任何地方定義和訪問
4、常量一旦定義就不能重新定義或取消定義
5、常量的值只能是標(biāo)量
問:在php中定義常量時(shí),const和define的區(qū)別?
答:使用const使得代碼簡單易讀,const本身就是一個(gè)語言結(jié)構(gòu),而define是一個(gè)函數(shù)。另外const在編譯時(shí)要比define快很多。
1、const可在類中使用,用于類成員變量的定義,一經(jīng)定義,不可修改。define不可以用于類成員變量的定義,可用于全局常量。
class Car{
const CONS = '我是常量';
echo self::CONS; //如果從類的內(nèi)部訪問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è)語言結(jié)構(gòu);而define是一個(gè)函數(shù),可以通過第三個(gè)參數(shù)來指定是否區(qū)分大小寫。true表示大小寫不敏感,默認(rèn)為false,即大小寫敏感。
如:define('PI',3.14,true);
4、const只能采用普通的常量名稱,define可以采用表達(dá)式作為名稱
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; //無效的常量
define('CONS',1<<5); //有效的常量
文章名稱:PHP:define和const的區(qū)別
分享網(wǎng)址:http://fisionsoft.com.cn/article/jihidp.html