PHP 常數:動態世界中的不變好友

你好啊,未來的 PHP 巫師們!今天,我們將要深入 PHP 常數的精彩世界。別擔心如果你是編程新手——我將成為你這次旅程中的友好導遊,等到旅程結束時,你將成為一位常數行家!

PHP - Constants

常數是什麼?

在我們開始之前,讓我們來討論一下常數是什麼。想像一下你在烤餅乾(美味!)。配方總是要求使用 2 杯麵粉——這從不會改變。在 PHP 中,常數就像那 2 杯麵粉一樣——它們是你整個程序中保持不變的值。

PHP 中有效和無效常數名稱的例子

現在,讓我們來看看我們如何為常數命名。這就像給你的寵物取名一樣——有一些規則要遵循!

有效常數名稱

define("MY_CONSTANT", 10);
define("_ANOTHER_CONSTANT", "Hello");
define("CONSTANT123", true);

這些名稱都是有效的,因為它們:

  1. 開頭是一個字母或下劃線
  2. 只包含字母、數字和下劃線
  3. 是區分大小寫的(稍後會詳細說明)

無效常數名稱

define("123CONSTANT", 10); // 不能以數字開頭
define("MY-CONSTANT", 20); // 不能使用連字符
define("$MYCONSTANT", 30); // 不能使用美元符號

這些名稱都是禁忌。記住,開頭不能是數字,不能使用特殊字符(除了下劃線),也不能使用美元符號!

PHP 中常數和變量的區別

現在,你可能會想,“為什麼不直接使用變量?”問得好!讓我們分析一下:

// 變量
$myVariable = 10;
$myVariable = 20; // 這是沒問題的,變量可以變化

// 常數
define("MY_CONSTANT", 10);
// MY_CONSTANT = 20; // 這會導致錯誤!

看到區別了嗎?變量就像心情戒指——它們可以改變。常數就像鑽石——它們是永恆的(至少在你的腚本結束之前)。

定義一個命名常數

讓我們動手定義一些常數吧!

define("PI", 3.14159);
define("GREETING", "Hello, World!");
define("IS_AWESOME", true);

echo PI; // 輸出:3.14159
echo GREETING; // 輸出:Hello, World!
echo IS_AWESOME; // 輸出:1(true 會顯示為 1)

在這個例子中,我們定義了三個常數:一個數字、一個字符串和一個布爾值。注意我們在使用它們時沒有加上美元符號——這是與變量的一個關鍵區別!

使用 constant() 函數

有時候,你可能想要使用一個存在於變量中的常數名稱。這時,constant() 函數就派上用場了!

$constName = "PI";
echo constant($constName); // 輸出:3.14159

$greeting = "GREETING";
echo constant($greeting); // 輸出:Hello, World!

這就像擁有一根魔杖,能將變量名稱變成常數值!

使用 defined() 函數

現在,如果我們不確定一個常數是否存在該怎麼辦?這時 defined() 函數就來拯救我們了!

if (defined("PI")) {
echo "PI is defined and its value is " . PI;
} else {
echo "PI is not defined";
}
// 輸出:PI is defined and its value is 3.14159

if (defined("UNDEFINED_CONSTANT")) {
echo "This won't be printed";
} else {
echo "UNDEFINED_CONSTANT is not defined";
}
// 輸出:UNDEFINED_CONSTANT is not defined

這個函數就像一名偵探——它會檢查常數是否存在,並返回 true 或 false。

常數最佳實踐

讓我們以一些專業使用常數的提示來結束這篇文章:

  1. 使用全大寫字母為常數命名。這不是強制性的,但這是一個常見的慣例,可以使你的代碼更易於閱讀。
  2. 對於不會改變的值,例如配置設定或數學常數,使用常數。
  3. 不要過度使用常數——如果一個值可能需要改變,則使用變量。

這裡有一個我們學到的方法的便捷表格:

方法 描述 示例
define() 定義一個命名常數 define("MY_CONSTANT", 10);
constant() 检索常量的值 echo constant("MY_CONSTANT");
defined() 檢查常數是否存在 if (defined("MY_CONSTANT")) { ... }

好了,各位!現在你已經精通了 PHP 常數的世界。記住,常數是你在編程這個不斷變化的世界中的堅定朋友。它們總是會在那裡為你提供支持,不變且可靠。開心編程,願你的常數永遠被定義!

Credits: Image by storyset