Examples

// 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";}

// usable only since PHP 5.0.3if (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";}?>

The above example will output:

yes, $WFC is a subclass of WidgetFactory
no, $WF is not a subclass of WidgetFactory
yes, WidgetFactory_Child is a subclass of WidgetFactory

// Test using the object instance of the classif (is_subclass_of($my_object, 'MyInterface')) { echo "Yes, \$my_object is a subclass of MyInterface\n";} else { echo "No, \$my_object is not a subclass of MyInterface\n";}

// Test using a string of the class nameif (is_subclass_of('MyClass', 'MyInterface')) { echo "Yes, MyClass is a subclass of MyInterface\n";} else { echo "No, MyClass is not a subclass of MyInterface\n";}?>

The above example will output:

Yes, $my_object is a subclass of MyInterface
Yes, MyClass is a subclass of MyInterface

Notes

Note:

Using this function will use any registered
autoloaders if the class is not already known.

If you're using Autoload, you should be aware that this will attempt to autoload $classname if it isn't already loaded. I discovered this when I had something using is_subclass_of inside an error thrown by autoload, which then recursed until it ran out of memory.