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

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';
}

?>