Giới thiệu
PHP cho phép một mã định danh trong một lớp được định nghĩa để có giá trị không đổi, giá trị này không thay đổi trên cơ sở mỗi lớp. const vòng loại.
Khả năng hiển thị mặc định của một hằng số là công khai, mặc dù các công cụ sửa đổi khác có thể được sử dụng trong định nghĩa. Giá trị của một hằng số phải là một biểu thức nhất định và không phải là một biến, cũng không phải là một thuộc tính / lệnh gọi hàm. giá trị của hằng được truy cập thông qua tên lớp bằng toán tử phân giải phạm vi. Bên trong một phương thức mặc dù nó có thể được tham chiếu thông qua self biến
Cú pháp
class SomeClass{ const CONSTANT = 'constant value'; } echo SomeClass::CONSTANT;
Tên hằng phân biệt chữ hoa chữ thường. Thông thường, tên của hằng số được viết hoa
Ví dụ về hằng số lớp
Ví dụ này cho thấy cách Hằng số lớp được xác định và truy cập
Ví dụ
<?php class square{ const PI=M_PI; var $side=5; function area(){ $area=$this->side**2*self::PI; return $area; } } $s1=new square(); echo "PI=". square::PI . "\n"; echo "area=" . $s1->area(); ?>
Đầu ra
Điều này sẽ tạo ra kết quả sau. -
PI=3.1415926535898 area=78.539816339745
Hằng số lớp dưới dạng biểu thức
Trong ví dụ này, hằng số lớp được gán một biểu thức
Ví dụ
<?php const X = 22; const Y=7; class square { const PI=X/Y; var $side=5; function area(){ $area=$this->side**2*self::PI; return $area; } } $s1=new square(); echo "PI=". square::PI . "\n"; echo "area=" . $s1->area(); ?>
bên ngoài
Điều này sẽ tạo ra kết quả sau. -
PI=3.1428571428571 area=78.571428571429
Công cụ sửa đổi khả năng hiển thị không đổi của lớp
Ví dụ
Ví dụ<?php class example { const X=10; private const Y=20; } $s1=new example(); echo "public=". example::X. "\n"; echo "private=" . $s1->Y ."\n"; echo "private=" . $example::Y ."\n"; ?>
Đầu ra
Điều này sẽ tạo ra kết quả sau. -
1public=10 PHP Notice: Undefined property: example::$Y in line 11 private=PHP Fatal error: Uncaught Error: Cannot access private const example::Y