Hướng dẫn dùng named constant trong PHP

Cách khai báo, sử dụng hằng (constant) trong PHP

Hằng là gì ?

- Gần giống như biến, hằng (constant) được sử dụng để lưu trữ một giá trị đơn giản, tuy nhiên điểm khác biệt giữa hằng so với biến là hằng sẽ không thể thay đổi giá trị sau khi được xác định.

- Một tên hằng hợp lệ phải được bắt đầu bằng một chữ cái hoặc dấu gạch dưới, không có dấu $ phía trước tên hằng.

- Lưu ý: Không giống như các biến, mặc định các hằng sẽ có phạm vi toàn cục (global) trên toàn bộ tập lệnh.

Cách khai báo một “hằng” trong PHP

- Để tạo (khai báo) một hằng thì ta sử dụng hàm define() với cú pháp như sau:

define(name, value, case-insensitive)

- Dưới đây là bảng mô tả các tham số được sử dụng trong hàm define().

Tham sốMô tả
name - Tên hằng.
value - Giá trị của hằng.
case-insensitive

- Xác định việc có phân biệt trường hợp chữ IN HOA hay chữ thường đối với tên hằng hay không.

- Tham số này có thể nhận một trong hai giá trị:

  • TRUE - Không phân biệt.
  • FALSE - Có phân biệt (đây là giá trị mặc định)

- Bạn cũng có thể dùng hằng để lưu trữ một mảng.

Hằng là toàn cục

- Mặc định thì Hằng sẽ có phạm vi toàn cục, bạn có thể sử dụng nó ở bất kỳ vị trí nào trong tập lệnh mà không cần phải dùng đến từ khóa global.

- Hằng Hello có phạm vi toàn cục, nó có thể sử dụng bên trong hàm mess() mà không cần phải dùng đến từ khóa global.

Biến số và hằng số trong PHP đều dùng để lưu giá trị. Tuy nhiên với hằng (constant) sẽ có sự khác biệt đó là khi đã định nghĩa rồi thì giá trị không thể thay đổi được. Bài viết này hãy cùng tìm hiểu về hằng trong PHP.

Lưu ý:

  • Hằng sẽ có phạm vi toàn cục. Có nghĩa là có thể truy cập trên toàn bộ tập lệnh.
  • Hằng không có dấu $ ở phía trước như biến. Mà được đặt bằng chữ cái hoặc dấu gạch dưới.

  • Cách khai báo hằng với Define
  • Cách khai báo hằng với const

Cách khai báo hằng với Define

define(name, value, case-insensitive)

Giải thích:

  • name: tên hằng số được đặt
  • value: định nghĩa giá trị được lưu không đổi.
  • case-insensitive: Giá trị mặc định là false, sẽ không phân biệt chữ hoa và thường. Còn ngược lại true thì sẽ phân biệt chữ hoa và thường.

Ví dụ:

Và sau khi chạy dòng echo base_name; // sai đã xuất lỗi.

Hướng dẫn dùng named constant trong PHP

Cách khai báo hằng với const

Từ khóa const khi thực thi lệnh sẽ nhanh hơn so với Define. Nó sẽ phân biệt chữ hoa và chữ thường.

Qua bài viết này bạn đã hiểu về cách sử dụng hằng với từ khóa Define và Const rồi đấy. Nó cũng khá cần thiết đấy bởi vì khi làm việc với PHP thuần hay Framework đều cần phải sử dụng.

Cách khai báo, sử dụng hằng (constant) trong PHP

Hằng là gì ?

- Gần giống như biến, hằng (constant) được sử dụng để lưu trữ một giá trị đơn giản, tuy nhiên điểm khác biệt giữa hằng so với biến là hằng sẽ không thể thay đổi giá trị sau khi được xác định.

- Một tên hằng hợp lệ phải được bắt đầu bằng một chữ cái hoặc dấu gạch dưới, không có dấu $ phía trước tên hằng.

- Lưu ý: Không giống như các biến, mặc định các hằng sẽ có phạm vi toàn cục (global) trên toàn bộ tập lệnh.

Cách khai báo một “hằng” trong PHP

- Để tạo (khai báo) một hằng thì ta sử dụng hàm define() với cú pháp như sau:

define(name, value, case-insensitive)

- Dưới đây là bảng mô tả các tham số được sử dụng trong hàm define().

Tham sốMô tả
name - Tên hằng.
value - Giá trị của hằng.
case-insensitive

- Xác định việc có phân biệt trường hợp chữ IN HOA hay chữ thường đối với tên hằng hay không.

- Tham số này có thể nhận một trong hai giá trị:

  • TRUE - Không phân biệt.
  • FALSE - Có phân biệt (đây là giá trị mặc định)

- Bạn cũng có thể dùng hằng để lưu trữ một mảng.

Hằng là toàn cục

- Mặc định thì Hằng sẽ có phạm vi toàn cục, bạn có thể sử dụng nó ở bất kỳ vị trí nào trong tập lệnh mà không cần phải dùng đến từ khóa global.

- Hằng Hello có phạm vi toàn cục, nó có thể sử dụng bên trong hàm mess() mà không cần phải dùng đến từ khóa global.

Ta có thể định nghĩa hằng giá trị trong một lớp. Hằng được sử dụng như những biến thông thường của lớp, nhưng không sử dụng ký hiệu $ để tạo.

Giá trị mà một hằng chứa có thể là một biểu thức hằng, không là một biến, một thuộc tính hay một lời gọi hàm.

Phiên bản PHP 5.3.0, hằng sẽ tham chiếu tới lớp như việc sử dụng biến, tức là giá trị của biến không thể là một từ khóa (ví dụ như self, parent và static).

Ví dụ 1: Định nghĩa và sử dụng một hằng


class MyClass
{
    const 
CONSTANT 'constant value';

    function

showConstant() {
        echo  
self::CONSTANT "\n";
    }
}

echo

MyClass::CONSTANT "\n";

$classname "MyClass";
echo 
$classname::CONSTANT "\n"// As of PHP 5.3.0

$class = new MyClass();
$class->showConstant();

echo

$class::CONSTANT."\n"// As of PHP 5.3.0
?>

Ví dụ 2: Dữ liệu tĩnh


class foo {
    
// As of PHP 5.3.0
    
const BAR = <<<'EOT'
bar
EOT;
    
// As of PHP 5.3.0
    
const BAZ = <<
baz
EOT;
}

?>

Lưu ý:

Việc hỗ trợ khởi tạo hằng với cú pháp Heredoc và Nowdoc được thêm vào phiên bản PHP 5.3.0.

Ví dụ 3: Ví dụ về biểu thức hằng


const ONE 1;

class

foo {
    
// As of PHP 5.6.0
    
const TWO ONE 2;
    const 
THREE ONE self::TWO;
    const 
SENTENCE 'The value of THREE is '.self::THREE;
}

?>

Có thể cung cấp một biểu thức vô hướng liên quan đến các hoặc số và hằng chuỗi và/hoặc các hằng trong lớp.

Lưu ý:

Biểu thức hằng được hỗ trợ tại phiên bản PHP 5.6.0.

Hằng của interface

Interface cũng có hằng, hằng của nó làm việc giống như hằng của lớp ngoại trừ việc hằng không thể bị ghi đè bởi lớp/interface thừa kế interface đó.

Ví dụ sau thể hiện việc sử dụng hằng trong interface.


interface a
{
    const 
'Interface constant';
}

// In ra: Interface constant
echo a::b;

// Điều sau đây sẽ không được thực hiện bởi vì không cho phép ghi đè hằng.
class implements a
{
    const 
'Class constant';
}

?>