常量是一個簡單的標識符。在腳本執行期間該值不能改變(除了所謂的魔術常量,他們其實不是常量)。常量默認大小寫敏感。通常常量標識符總是大寫的。
一、常量和變量有如下不同:
1、常量前面沒有美元符號($)
2、常量只能通過define()函數定義,而不能通過賦值語句
3、常量可以不用理會變量的作用域在任何地方定義和訪問
4、常量一旦定義就不能重新定義或取消定義
5、常量的值只能是標量(boolean、integer、float和string)
二、const和define的區別
1、const是一個語言結構;const定義的常量是大小寫敏感。而define是一個函數,可以通過第三個參數來指定是否區分大小寫。true表示大小寫不敏感,默認為false
define('PI', 3.14, true);
2、const簡單易讀,編譯時要比define快很多。
3、const可在類中使用,用於類成員常量定義(在php5.3.0以后,可以使用const關鍵字在類定義的外部定義常量),定義后不可修改,const在類內定義常量,並且const必須通過類名::變量名來進行訪問;define不能在類中使用,可用於全局變量
4、const是在編譯時定義,因此必須處於最頂端的作用區域,不能在函數,循環及if條件中使用;而define是函數,也就是能調用函數的地方都可以使用
5、const只能用普通的常量名,define常量名中可以有表達式
6、const定義的常量只能是靜態常量,define可以是任意表達式