溫馨提示×

溫馨提示×

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

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

詳解PHP中const和define的區別

發布時間:2020-03-02 04:08:04 來源:網絡 閱讀:300 作者:前端大大 欄目:開發技術

在PHP中定義常量時,可用const與define這兩種方式,那他們到底有什么區別呢?
詳解PHP中const和define的區別

  1. const用于類成員變量定義,一旦定義且不能改變其值。define定義全局常量,在任何地方都可以訪問。

  2. define不能定義在類中,而const必須定義在類中,并且const定義的變量必須通過類名::變量名來進行訪問。

  3. const不能在條件語句中定義常量。

  4. const采用一個普通的常量名稱(靜態的標量),define可以采用任何表達式作為名稱。

  5. const 總是大小寫敏感,然而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在類內定義常量,并且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只能接受靜態的標量,而define可以采用任何表達式。

<?php
const PHP = 1 << 5; // 錯誤
define('PHP', 1 << 5); // 正確 
?>

const本身就是一個語言結構。而define是一個函數。所以使用const速度要快的多,除非你需要使用表達式或者在條件語句中定義常量,不然的話僅僅是為了代碼的簡單可讀性你都最好要使用const!

向AI問一下細節

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

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女