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