is_subclass_of()
is_subclass_of() — Checks if the object has this class as one of its parents or implements it.
Built-in function of PHP 8.5. The manual lists it as available in PHP 4, PHP 5, PHP 7, PHP 8. This page is the reference card: signature, parameters and return value, plus the changelog and the example the manual provides.
What it does
Checks if the given object_or_class has the class class as one of its parents or implements it.
Signature
is_subclass_of(mixed $object_or_class, string $class, bool $allow_string = true): bool
Parameters
| Parameter | Type | What it takes |
|---|---|---|
| $object_or_class | mixed | A class name or an object instance. No error is generated if the class does not exist. |
| $class | string | The class name |
| $allow_string | bool | If this parameter is set to false, a string class name as object_or_class is not allowed. This also prevents calling the autoloader if the class doesn't exist. |
Return value
This function returns true if the object object_or_class, belongs to a class which is a subclass of class, false otherwise.
Example
A runnable snippet:
// define a class class WidgetFactory { var $oink = 'moo'; } // define a child class class WidgetFactory_Child extends WidgetFactory { var $oink = 'oink'; } // create a new object $WF = new WidgetFactory(); $WFC = new WidgetFactory_Child(); if (is_subclass_of($WFC, 'WidgetFactory')) { echo "yes, \$WFC is a subclass of WidgetFactory\n"; } else { echo "no, \$WFC is not a subclass of WidgetFactory\n"; } if (is_subclass_of($WF, 'WidgetFactory')) { echo "yes, \$WF is a subclass of WidgetFactory\n"; } else { echo "no, \$WF is not a subclass of WidgetFactory\n"; } if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) { echo "yes, WidgetFactory_Child is a subclass of WidgetFactory\n"; } else { echo "no, WidgetFactory_Child is not a subclass of WidgetFactory\n"; }
Output:
yes, $WFC is a subclass of WidgetFactory no, $WF is not a subclass of WidgetFactory yes, WidgetFactory_Child is a subclass of WidgetFactory
See also
get_class(), get_parent_class(), is_a(), class_parents()
All PHP 8.5 built-in functions
Reference card built from the PHP manual page is_subclass_of() (PHP documentation, CC BY 3.0). The page is generated from the manual, so the wording of the parameter and return value text follows php.net.