แนะนำตัว
ใน PHP เป็นไปได้ที่จะตรวจสอบว่าตัวแปรที่กำหนดเป็นวัตถุของคลาสใดคลาสหนึ่งหรือไม่ เพื่อจุดประสงค์นี้ PHP มี อินสแตนซ์ของ โอเปอเรเตอร์
ไวยากรณ์
$var instanceof class
โอเปอเรเตอร์นี้ส่งคืนค่าบูลีน TRUE ของ $var เป็นอ็อบเจ็กต์ของคลาส มิฉะนั้นจะส่งกลับ FALSE
ตัวอย่าง
ในตัวอย่างต่อไปนี้ ตัวดำเนินการ instanceof จะตรวจสอบว่าวัตถุที่กำหนดของคลาสการทดสอบที่ผู้ใช้กำหนดหรือไม่
ตัวอย่าง
<?php class testclass{ //class body } $a=new testclass(); if ($a instanceof testclass==TRUE){ echo "\$a is an object of testclass"; } else { echo "\$a is not an object of testclass"; } ?>
ผลลัพธ์
ผลลัพธ์ต่อไปนี้จะปรากฏขึ้น
$a is an object of testclass
ในการตรวจสอบว่าวัตถุบางอย่างไม่ใช่อินสแตนซ์ของคลาสหรือไม่ ให้ใช้ ! โอเปอเรเตอร์
ตัวอย่าง
<?php class testclass{ //class body } $a=new testclass(); $b="Hello"; if (!($b instanceof testclass)==TRUE){ echo "\$b is not an object of testclass"; } else { echo "\$b is an object of testclass"; } ?>
ผลลัพธ์
ผลลัพธ์ต่อไปนี้จะปรากฏขึ้น
$b is not an object of testclass
ตัวดำเนินการ instanceof ยังตรวจสอบว่าตัวแปรเป็นวัตถุของคลาสพาเรนต์หรือไม่
ตัวอย่าง
<?php class base{ //class body } class testclass extends base { //class body } $a=new testclass(); var_dump($a instanceof base) ?>
ผลลัพธ์
ผลลัพธ์ต่อไปนี้จะปรากฏขึ้น
bool(true)
นอกจากนี้ยังสามารถยืนยันได้ว่าตัวแปรนั้นเป็นอินสแตนซ์ของอินเทอร์เฟสหรือไม่
ตัวอย่าง
<?php interface base{ } class testclass implements base { //class body } $a=new testclass(); var_dump($a instanceof base) ?>
ผลลัพธ์
ผลลัพธ์ต่อไปนี้จะปรากฏขึ้น
bool(true)