ตัวดำเนินการ instanceof

ตัวดำเนินการ instanceof ตรวจสอบว่าวัตถุเป็นอินสแตนซ์ของคลาสที่ระบุ หรือของคลาสลูกหรือไม่ พารามิเตอร์แรกรับวัตถุ พารามิเตอร์ที่สอง - ชื่อคลาสสำหรับการตรวจสอบ ส่งคืน true หากวัตถุเป็นของคลาส หรือ false ในกรณีอื่น

ไวยากรณ์

php$object instanceof ClassName;

ตัวอย่าง

ตรวจสอบว่าวัตถุเป็นอินสแตนซ์ของคลาส MyClass หรือไม่:

php<?php
  class MyClass {}
  $obj = new MyClass();
  var_dump($obj instanceof MyClass);
?>

ผลลัพธ์การทำงานของโค้ด:

phptrue

ตัวอย่าง

ตรวจสอบการสืบทอดคลาส:

php<?php
  class ParentClass {}
  class ChildClass extends ParentClass {}
  
  $child = new ChildClass();
  var_dump($child instanceof ParentClass);
?>

ผลลัพธ์การทำงานของโค้ด:

phptrue

ตัวอย่าง

ตรวจสอบว่าวัตถุไม่ใช่อินสแตนซ์ของคลาส:

php<?php
  class A {}
  class B {}
  
  $a = new A();
  var_dump($a instanceof B);
?>

ผลลัพธ์การทำงานของโค้ด:

phpfalse

ดูเพิ่มเติม

  • ฟังก์ชัน get_class,
    ซึ่งส่งคืนชื่อคลาสของวัตถุ
  • ฟังก์ชัน is_a,
    ซึ่งตรวจสอบว่าวัตถุเป็นของคลาสหรือไม่