is_subclass_of

(PHP 4, PHP 5)

is_subclass_of --  如果此对象是该类的子类,则返回 TRUE

描述

bool is_subclass_of ( object object, string class_name )

如果对象 object 所属类是类 class_name 的子类,则返回 TRUE,否则返回 FALSE

参见 get_class()get_parent_class()is_a()


add a note add a note User Contributed Notes
Ondra Zizka
13-Oct-2006 08:31
For PHP4:

/** Returns whether specified class is subclass of the other class. */
function is_subclass($sClass, $sExpectedParentClass){
   do if( $sExpectedParentClass === $sClass ) return true;
   while( false != ($sClass = get_parent_class($sClass)) );
   return false;
}
// Test:
class A {} class B extends A {} class C extends B {} echo (int) is_subclass('C', 'A');
gunniboyh at web dot de
20-May-2006 09:16
is_subclass_of() works also with classes between the class of obj and the superclass.

example:
<?php
class A {};
class
B extends A {};
class
C extends B {};

$foo=new C();
echo ((
is_subclass_of($foo,'A')) ? 'true' : 'false');
?>

echoes 'true' .
01-Oct-2005 09:32
this function does not check interfaces, unlike instanceof operator.
youcantryreachingme at REMOVEME dot hotmail dot com
22-Mar-2005 10:15
A bug report at http://pear.php.net/bugs/bug.php?id=2975 indicates that the "is_subclass_of" function can return the error message:

Warning: Unknown class passed as parameter

in the event that the class represented by the second argument hasn't yet been instantiated.