Computer >> Máy Tính >  >> Lập trình >> PHP

Hằng số lớp PHP

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