บทนำ
ใน PHP ตัวดำเนินการ double colon :: ถูกกำหนดเป็น Scope Resolution Operator ใช้เมื่อเราต้องการเข้าถึงค่าคงที่ คุณสมบัติ และเมธอดที่กำหนดระดับคลาส เมื่ออ้างอิงรายการเหล่านี้ภายนอกการกำหนดคลาส ใช้ชื่อคลาสพร้อม scope resolution operator ตัวดำเนินการนี้ยังเรียกว่า Paamayim Nekudotayim ซึ่งในภาษาฮีบรูหมายถึง double colon
รูปแบบไวยากรณ์
<?php class A{ const PI=3.142; static $x=10; } echo A::PI; echo A::$x; $var='A'; echo $var::PI; echo $var::$x; ?>
ภายในคลาส (Inside class)
เพื่อเข้าถึงรายการระดับคลาสภายในเมธอดใดๆ ใช้คีย์เวิร์ด - self
<?php class A{ const PI=3.142; static $x=10; static function show(){ echo self::PI . self::$x; } } A::show(); ?>
ในคลาสลูก (In child class)
หากเมธอดของ parent class ถูก override โดย child class และคุณต้องการเรียกเมธอด parent ที่สอดคล้อง มันต้องนำหน้าด้วยคีย์เวิร์ด parent และ scope resolution operator
ตัวอย่าง
<?php class testclass{ public function sayhello(){ echo "Hello World\n"; } } class myclass extends testclass{ public function sayhello(){ parent::sayhello(); echo "Hello PHP"; } } $obj=new myclass(); $obj->sayhello(); ?>
ผลลัพธ์
Hello World Hello PHP