PHP - 常量陣列



在 PHP 5.6 版本之前,無法宣告常量陣列。從 PHP 5.6 開始,可以使用 "const" 關鍵字宣告常量陣列。從 PHP 7 開始,也可以使用 define() 函式來形成常量陣列。

常量陣列是在形成後無法修改的陣列。與普通陣列不同,它的識別符號不以 "$" 符號開頭。

宣告常量陣列的舊語法為:

const ARR = array(val1, val2, val3);

示例

<?php
   const FRUITS = array(
      "Watermelon", 
      "Strawberries",
      "Pomegranate",
      "Blackberry",
   );
   var_dump(FRUITS);
?>

它將產生以下 **輸出**:

array(4) {
   [0]=>
   string(10) "Watermelon"
   [1]=>
   string(12) "Strawberries"
   [2]=>
   string(11) "Pomegranate"
   [3]=>
   string(10) "Blackberry"
}

您也可以在 PHP 中使用傳統的方括號語法來宣告常量陣列:

const FRUITS = [
   "Watermelon", 
   "Strawberries",
   "Pomegranate",
   "Blackberry",
];

示例

無法修改常量陣列中的任何元素。因此,以下程式碼會丟擲致命錯誤:

<?php
   const FRUITS = [
      "Watermelon", 
      "Strawberries",
      "Pomegranate",
      "Blackberry",
   ];
   FRUITS[1] = "Mango";
?>

它將產生以下 **輸出**:

PHP Fatal error:  Cannot use temporary expression in write context

PHP 7 及更高版本中的常量陣列

較新版本的 PHP 允許您使用 define() 函式宣告常量陣列。

<?php
   define ('FRUITS',  [
      "Watermelon", 
      "Strawberries",
      "Pomegranate",
      "Blackberry",
   ]);
   print_r(FRUITS);
?>

它將產生以下 **輸出**:

Array
(
   [0] => Watermelon
   [1] => Strawberries
   [2] => Pomegranate
   [3] => Blackberry
)

您也可以在這裡使用 array() 函式來宣告常量陣列。

define ('FRUITS',  array(
   "Watermelon", 
   "Strawberries",
   "Pomegranate",
   "Blackberry",
));

示例

還可以宣告 **關聯常量陣列**。以下是一個示例:

<?php
   define ('CAPITALS',  array(
      "Maharashtra" => "Mumbai",
      "Telangana" => "Hyderabad",
      "Gujarat" => "Gandhinagar",
      "Bihar" => "Patna"
   ));
   print_r(CAPITALS);
?>

它將產生以下 **輸出**:

Array
(
   [Maharashtra] => Mumbai
   [Telangana] => Hyderabad
   [Gujarat] => Gandhinagar
   [Bihar] => Patna
)
廣告