溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中define和const有什么區(qū)別

發(fā)布時間:2020-07-21 14:37:02 來源:億速云 閱讀:137 作者:Leah 欄目:編程語言

本篇文章為大家展示了php中define和const有什么區(qū)別,代碼簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

區(qū)別:1、const用于類成員變量的定義,而define不可用于類成員變量的定義;2、const只接受靜態(tài)的標量,而define可以采用任何表達式;3、const定義常量時大小寫敏感,但define可以通過第三個參數(shù)來指定大小寫是否敏感。

常量默認大小寫敏感,通常常量的標識符總是大寫的。

可以用define()函數(shù)來定義常量,在php5.3.0之后,可以使用const關鍵字在類定義的外部定義常量,先前版本const關鍵字只能在類(class)中使用。

常量只能包含標量數(shù)據(jù) (boolean,integer,float,string)??梢远xresource常量,但應該盡量避免。

定義常量

define("PI", 3.14);
echo PI; // 3.14
echo pi; // 輸出 "pi" 并發(fā)出一個Warning信息

// 以下代碼在 PHP 5.3.0 后可以正常工作
const RATE = 'Hello World';
echo RATE;

在PHP中定義常量時,const與define的區(qū)別

1、const本身是一個語言結構,而define是一個函數(shù)。

2、const在編譯時要比define快很多

3、const用于類成員變量的定義,而define不可用于類成員變量的定義

4、const不能在條件語句中使用

if (...){
    const FOO = 'BAR';    // 無效的
}
if (...) {
    define('FOO', 'BAR'); // 有效的
}

5、const只接受靜態(tài)的標量,而define可以采用任何表達式

const BIT_5 = 1 << 5;    // 無效的
define('BIT_5', 1 << 5); // 有效的

6、const定義常量時大小寫敏感,但define可以通過第三個參數(shù)(為true表示大小寫不敏感)來指定大小寫是否敏感

define('FOO', 'BAR', true);
echo FOO; // BAR
echo foo; // BAR

動態(tài)常量名

如果常量名是動態(tài)的,也可以用函數(shù)constant()來獲取常量的值。用get_defined_contstants()可以獲得所有已定義的常量列表。

define('PI',3.14);

$chang = 'PI';
echo $chang,'<br/>'; // PI

echo constant($chang); // 3.14

defined — 檢查某個名稱的常量是否存在

// 真實開發(fā)一般是這樣的
if(!defined('HEI')){
    define('HEI',8846);
}

上述內(nèi)容就是php中define和const有什么區(qū)別,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI