區別:1、const用於類別成員變數的定義,而define不可用於類別成員變數的定義;2、const只接受靜態的標量,而define可以採用任何表達式;3、const定義常數時大小寫敏感,但define可以透過第三個參數來指定大小寫是否敏感。
常數預設大小寫敏感,通常常數的識別碼總是大寫的。
可以用define()
函數來定義常數,在php5.3.0之後,可以使用const
關鍵字在類別定義的外部定義常數,先前版本const關鍵字只能在類別(class)中使用。
常數只能包含標量資料 (boolean,integer,float,string)。可以定義resource常數,但應該盡量避免。
定義常數
define("PI", 3.14); echo PI; // 3.14 echo pi; // 输出 "pi" 并发出一个Warning信息 // 以下代码在 PHP 5.3.0 后可以正常工作 const RATE = 'Hello World'; echo RATE;
在PHP中定義常數時,const與define的區別
1、const本身是一個語言結構,而define是一個函數。
2、const在編譯時比define快很多
3、const用於類別成員變數的定義,而define不可用於類別成員變數的定義
4、const不能在條件語句中使用
if (...){ const FOO = 'BAR'; // 无效的 } if (...) { define('FOO', 'BAR'); // 有效的 }
5、const只接受靜態的標量,而define可以採用任何表達式
const BIT_5 = 1 << 5; // 无效的 define('BIT_5', 1 << 5); // 有效的
6、const定義常數時大小寫敏感,但define可以透過第三個參數(為true表示大小寫不敏感)來指定大小寫是否敏感
define('FOO', 'BAR', true); echo FOO; // BAR echo foo; // BAR
動態常數名稱
如果常數名稱是動態的,也可以用函數constant()來取得常數的值。用get_defined_contstants()可以得到所有已定義的常數列表。
define('PI',3.14); $chang = 'PI'; echo $chang,'<br/>'; // PI echo constant($chang); // 3.14
defined — 檢查某個名稱的常數是否存在
#// 真实开发一般是这样的 if(!defined('HEI')){ define('HEI',8846); }
相關教學推薦:《PHP教學》
以上是php中define和const的差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!