PHP - Constant Arrays

Không thể khai báo một mảng hằng trước phiên bản PHP 5.6. Từ PHP 5.6 trở đi, bạn có thể sử dụng từ khóa "const" để khai báo một mảng hằng. Từ PHP 7 trở đi, các mảng hằng cũng có thể được tạo ra bằng cách sử dụng hàm define().

Một mảng hằng là một mảng không thể được sửa đổi sau khi nó đã được tạo ra. Khác với một mảng bình thường, định danh của nó không bắt đầu bằng dấu "$".

Cú pháp cũ để khai báo mảng hằng là −

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

Example

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

Nó sẽ tạo ra output

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

Bạn cũng có thể sử dụng cú pháp dấu ngoặc vuông thông thường để khai báo một mảng hằng trong PHP −

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

Example

Không thể sửa đổi bất kỳ phần tử nào trong một mảng hằng. Do đó, đoạn mã sau sẽ gây ra lỗi nghiêm trọng −

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

Nó sẽ tạo ra output

PHP Fatal error:  Cannot use temporary expression in write context

Constant Arrays PHP 7 Onwards

Các phiên bản mới hơn của PHP cho phép bạn khai báo một mảng hằng số bằng cách sử dụng hàm define().

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

Nó sẽ tạo ra output

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

Bạn cũng có thể sử dụng hàm array() để khai báo mảng hằng ở đây.

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

Example

Cũng có thể khai báo một associative constant array . Dưới đây là một ví dụ −

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

Nó sẽ tạo ra output

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