แนะนำตัว
PHP อนุญาตให้ระบุตัวระบุในคลาสเพื่อให้มีค่าคงที่ ซึ่งยังคงไม่เปลี่ยนแปลงในแต่ละคลาส ในการแยกความแตกต่าง rom ตัวแปรหรือคุณสมบัติในคลาส ชื่อของค่าคงที่จะไม่นำหน้าด้วยสัญลักษณ์ $ และถูกกำหนดด้วย ค่าเสียหาย รอบคัดเลือก
การเปิดเผยค่าเริ่มต้นของค่าคงที่เป็นแบบสาธารณะ แม้ว่าตัวดัดแปลงอื่นๆ อาจใช้ในคำจำกัดความ ค่าคงที่ต้องเป็นนิพจน์ที่แน่นอน ไม่ใช่ตัวแปร หรือการเรียกใช้ฟังก์ชัน/คุณสมบัติ ค่าคงที่เข้าถึงได้โดยใช้ชื่อคลาสโดยใช้ตัวดำเนินการแก้ไขขอบเขต ภายในวิธีการแม้ว่าจะสามารถอ้างถึงผ่าน ตัวเอง ตัวแปร
ไวยากรณ์
class SomeClass{ const CONSTANT = 'constant value'; } echo SomeClass::CONSTANT;
ชื่อคงที่ต้องคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ตามอัตภาพ ชื่อของค่าคงที่เป็นตัวพิมพ์ใหญ่
ตัวอย่างค่าคงที่ของคลาส
ตัวอย่างนี้แสดงให้เห็นว่า Class Constant ถูกกำหนดและเข้าถึงอย่างไร
ตัวอย่าง
<?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(); ?>
ผลลัพธ์
ซึ่งจะให้ผลลัพธ์ตามมา −
PI=3.1415926535898 area=78.539816339745
ค่าคงที่คลาสเป็นนิพจน์
ในตัวอย่างนี้ ค่าคงที่ของคลาสถูกกำหนดเป็นนิพจน์
ตัวอย่าง
<?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(); ?>
ด้านนอก
ซึ่งจะให้ผลลัพธ์ตามมา −
PI=3.1428571428571 area=78.571428571429
ตัวแก้ไขการมองเห็นคงที่ของคลาส
ตัวอย่าง
<?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"; ?>
ผลลัพธ์
ซึ่งจะให้ผลลัพธ์ตามมา −
1public=10 PHP Notice: Undefined property: example::$Y in line 11 private=PHP Fatal error: Uncaught Error: Cannot access private const example::Y