在PHP中定義常量時,可用const與define這兩種方式,那他們到底有什么區(qū)別呢?
const用于類成員變量定義,一旦定義且不能改變其值。define定義全局常量,在任何地方都可以訪問。
define不能定義在類中,而const必須定義在類中,并且const定義的變量必須通過類名::變量名來進行訪問。
const不能在條件語句中定義常量。
const采用一個普通的常量名稱(靜態(tài)的標量),define可以采用任何表達式作為名稱。
6.使用const簡單易讀,它本身是一個語言結構,而define是一個方法,用const定義在編譯時比define快很多。
如果在類中定義常量,不能用define,而用const,如下例:
推薦:《PHP教程》
<?php
//在類外面通常這樣定義常量
define("PHP","111cn.net");
class MyClass
{
//常量的值將始終保持不變。在定義和使用常量的時候不需要使用$符號
const constant = 'constant value';
function showConstant() {
echo self::constant . "<br>";
}
}
echo MyClass::constant . "<br>";
$classname = "MyClass";
echo $classname::constant . "<br>"; // PHP 5.3.0之后
$class = new MyClass();
$class->showConstant();
echo $class::constant."<br>"; // PHP 5.3.0之后
//print_r(get_defined_constants()); //可以用get_defined_constants()獲取所有定義的常量
?>
一般是define在類外定義常量,const在類內(nèi)定義常量,并且const必須通過類名::變量名來進行訪問。但是php5.3以上支持類外通過const定義常量,看如下,這樣是ok的:小編給大家推薦一個學習氛圍超好的地方,PHP交流企鵝裙:[https://jq.qq.com/?_wv=1027&k=5REhqIH]() 適合在校大學生,小白,想轉行,想通過這個找工作的加入。裙里有大量學習資料,有大神解答交流問題,每晚都有免費的直播課程
<?php
const a = "abcdef";
echo a;
?>
const不能再條件語句中定義常量,但是define是可以的,如下
<?php
if(1){
const a = 'java';
}
echo a; //必錯
?>
const采用一個普通的常量名稱,define可以采用表達式作為名稱
<?phpconst FOO = 'PHP';
for ($i = 0; $i < 32; ++$i) {
define('PHP_' . $i, 1 << $i);
}
?>
const只能接受靜態(tài)的標量,而define可以采用任何表達式。
<?php
const PHP = 1 << 5; // 錯誤
define('PHP', 1 << 5); // 正確
?>
const本身就是一個語言結構。而define是一個函數(shù)。所以使用const速度要快的多,除非你需要使用表達式或者在條件語句中定義常量,不然的話僅僅是為了代碼的簡單可讀性你都最好要使用const!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞標題:詳解PHP中const和define的區(qū)別-創(chuàng)新互聯(lián)
文章路徑:http://chinadenli.net/article36/dhjgsg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站收錄、網(wǎng)站設計、網(wǎng)站建設、網(wǎng)站制作、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容