ฟังก์ชัน is_subclass_of

ฟังก์ชัน is_subclass_of ตรวจสอบว่าออบเจ็กต์หรือคลาสเป็นคลาสลูกของคลาสที่ระบุหรือใช้งานอินเทอร์เฟซที่ระบุหรือไม่ พารามิเตอร์แรกรับออบเจ็กต์หรือชื่อคลาส พารามิเตอร์ที่สองรับชื่อคลาสแม่หรืออินเทอร์เฟซ พารามิเตอร์ที่สามซึ่งเป็นตัวเลือกกำหนดว่าจะต้องพิจารณาการโหลดคลาสอัตโนมัติหรือไม่

ไวยากรณ์

phpis_subclass_of(mixed $object_or_class, string $class, bool $allow_string = true): bool

ตัวอย่าง

ตรวจสอบการสืบทอดของคลาสทั่วไป:

php<?php
  class ParentClass {}
  class ChildClass extends ParentClass {}

  $res = is_subclass_of('ChildClass', 'ParentClass');
  var_dump($res);
?>

ผลลัพธ์จากการรันโค้ด:

phptrue

ตัวอย่าง

ตรวจสอบการใช้อินเทอร์เฟซ:

php<?php
  interface MyInterface {}
  class MyClass implements MyInterface {}

  $res = is_subclass_of('MyClass', 'MyInterface');
  var_dump($res);
?>

ผลลัพธ์จากการรันโค้ด:

phptrue

ตัวอย่าง

การตรวจสอบด้วยออบเจ็กต์แทนชื่อคลาส:

php<?php
  class Animal {}
  class Dog extends Animal {}

  $dog = new Dog();
  $res = is_subclass_of($dog, 'Animal');
  var_dump($res);
?>

ผลลัพธ์จากการรันโค้ด:

phptrue

ตัวอย่าง

ตรวจสอบกรณีที่คลาสไม่ได้เป็นคลาสลูก:

php<?php
  class A {}
  class B {}

  $res = is_subclass_of('B', 'A');
  var_dump($res);
?>

ผลลัพธ์จากการรันโค้ด:

phpfalse

ดูเพิ่มเติม

  • ฟังก์ชัน is_a,
    ซึ่งตรวจสอบความเป็นสมาชิกของคลาส
  • ฟังก์ชัน class_parents,
    ซึ่งส่งคืนคลาสแม่ทั้งหมด
  • ฟังก์ชัน get_parent_class,
    ซึ่งส่งคืนคลาสแม่
  • ฟังก์ชัน instanceof,
    โอเปอเรเตอร์ตรวจสอบอินสแตนซ์