這章主要介紹 PHP 的常數。
常數的意思就是數值不會被改變的常量;和常數相反的就是變數,就是指可以被改變的變量。
常數名稱的命名規則和變數相同,一樣不可以使用數字和特別符號當做名稱的開頭
而更詳細的內容會分成2個部分來介紹:
- syntax
- magic contants
syntax
這部分會介紹宣告 PHP 常數的語法。
宣告的語法主要有2種,分別是
- define() 函式
- const 關鍵字
緊接著就來看實際應用的方法~
1. define()
define 方法主要有3個參數,由左到右分別是
name:
代表常數的名稱。
value:
代表常數儲存的數值,數值可以是 integer, float, string, boolean, null 型態 (PHP 7中,還可以儲存陣列型態)。
case_insensitive:
儲存布林值,代表這個常數會不會區分大小寫。若為 true,則常數 NAME 和常數 name 是相同的。(預設為 false)
在來看看實際的例子:
1 | define('Name', 'Jason', true); |
2. const
和 define 函式不同, const 是一個關鍵字而不是一個函式。
相較於 define() ,我個人感覺使用 const 關鍵字會更加直覺一點~
但是使用 const 宣告常數的時候,常數是不會區分大小寫的
1 | const Name = 'Jason'; |
補充
1.在 PHP 5.6.0 之後,常數的數值可以做加乘的動作
1.字串的加乘1
2
3
4
5const firstName = 'Jason';
const lastName = 'Lai';
const fullName = firstName . ' ' . lastName;
echo fullName; // 結果會印出 'Jason Lai'
2.數字的加乘1
2
3
4
5const baseNum = 10;
const time = 2;
const totalValue = baseNum * time;
echo totalValue; // 結果會印出 20
magic contants
PHP 除了有預先定義好的變數之外,也有提供預先定義好的常數,這些常數就叫做 magic constants。
同樣的,在不同的延伸函式庫中會包含不同的魔術常數,需要引用對應的延伸函式庫才能使用這些常數。
而前面提到常數被定義好之後是不能被更改數值的,下面會列出一些會隨著環境變化而改變數值的魔術常數:
- LINE:
當前檔案的行數。 - FILE:
完整的檔案名稱和路徑。 - DIR:
檔案的資料夾名稱。 - FUNCTION:
方法名稱。 - CLASS:
類別的名稱。 - TRAIT:
Trait 的名稱(包含命名空間和它被宣告的區域)。 - METHOD:
類別中方法的名稱。 - NAMESPACE:
當前命名空間的名稱。 - ClassName::class:
類別名稱解析。
透過這些魔術常數可以幫助我們更快取得我們需要的資訊。
而其中某些沒看過得新名詞會在後續的章節介紹~