แนะนำตัว
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