PHP中的Define和Const區別

2021-09-25 00:15:01 字數 1136 閱讀 7703

我們經常把不經常變的值定義成常量,常量一般用全部大寫來表示,前面不加美元符號,那麼define和const有什麼區別呢?

常量是乙個簡單的識別符號。在指令碼執行期間該值不能改變(除了所謂的魔術常量,他們其實不是常量)。常量預設大小寫敏感。通常常量識別符號總是大寫的。

可以用define()函式來定義常量。在php5.3.0以後,可以使用const關鍵字在類定義的外部定義常量,php7可以定義陣列常量了,先前版本const關鍵字只能在類(class)中使用。乙個常量一旦被定義,就不能再改變或取消定義。

<?php 

//以下**在 php 5.3.0 後可以正常工作

const username = '周伯通';

echo username.php_eol

;echo

constant("username");

const zhouusername = '周伯通九陰真經';

define('myusername','周伯通九陰真經2');

echo "";

print_r(get_defined_constants

());

?>

常量和變數有如下不同:

1、const是乙個語言結構;而define是乙個函式,可以通過第三個引數來指定是否區分大小寫。true表示大小寫不敏感,預設為false

2、const簡單易讀,編譯時要比define快很多。

3、const可在類中使用,用於類成員常量定義,定義後不可修改;define不能在類中使用,可用於全域性變數

<?php 

class

myclass

}$class = new

myclass();

$class->showconstant();

4、const是在編譯時定義,因此必須處於最頂端的作用區域,不能在函式,迴圈及if條件中使用;而define是函式,也就是能呼叫函式的地方都可以使用

<?php 

$x = true

;if ($x==1)

if ($x==1)

const和define的區別以及const的優點

1 就起作用的階段而言 define是在編譯的預處理階段起作用 在預處理階段進行替換 而const是在編譯執行的時候起作用 const修飾的唯讀變數是在編譯的時候確定其值 2 就起作用的方式而言 define只是簡單的字串替換,沒有型別檢查。而const有對應的型別,是要進行判斷的,可以避免一些低階...

php中define和const的區別

常量前面沒有美元符號 常量只能用define 函式或const定義,而不能通過賦值語句 常量可以不用理會變數的作用域而在任何地方定義和訪問 常量一旦定義就不能被重新定義或者取消定義 常量的值只能是標量。const的使用 define的使用 const用於類常量的定義 define不可以用於類常量的定...

PHP中define和defined的區別

php中define和defined的區別 對於初學者會混淆這兩個函式 1.define用來定義乙個常量,常量也是全域性範圍的。不用管作用域就可以在指令碼的任何地方訪問 常量。乙個常量一旦被定義,就不能再改變或者取消定義 如 define website www.phperz.com www.php...