Jesus · Bible · HTML · CSS · JS · PHP · SVG · Applications

is_subclass_of

Description

Checks if the object has this class as one of its parents or implements it

Syntax

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

Parameters

object_or_class

A class name or an object instance. No error is generated if the class does not exist.

class

The class name.

allow_string

If this parameter set to false, string class name as object_or_class is not allowed. This also prevents from calling autoloader if the class doesn't exist.

Return

This function returns true if the object object_or_class, belongs to a class which is a subclass of class, false otherwise.

Examples

1 · object_or_class class

<?

class myclassparent
{
}
class myclasschild extends myclassparent
{
}

$object_or_class = new myclasschild();
$class = "myclassparent";

$return = is_subclass_of($object_or_class, $class);

var_export($return);

?>
true

2 · allow_string · false

<?

class myclassparent
{
}
class myclasschild extends myclassparent
{
}

$object_or_class = "myclasschild";
$class = "myclassparent";
$allow_string = false;

$return = is_subclass_of($object_or_class, $class, $allow_string);

var_export($return);

?>
false

3 · allow_string · true

<?

class myclassparent
{
}
class myclasschild extends myclassparent
{
}

$object_or_class = "myclasschild";
$class = "myclassparent";
$allow_string = true;

$return = is_subclass_of($object_or_class, $class, $allow_string);

var_export($return);

?>
true

4 · namespace

<?

namespace mynamespace;

class myclassparent
{
}
class myclasschild extends myclassparent
{
}

$object_or_class = new myclasschild();
$class = "mynamespace\myclassparent";

$return = is_subclass_of($object_or_class, $class);

var_export($return);

?>
true

5 · interface

<?

interface myinterface
{
}

class myclass implements myinterface
{
}

$object_or_class = new myclass();
$class = "myinterface";

$return = is_subclass_of($object_or_class, $class);

var_export($return);

?>
true
HomeMenu