Checking if an instance's class implements an interface?

Wilco picture Wilco · Nov 8, 2008 · Viewed 92.9k times · Source

Given a class instance, is it possible to determine if it implements a particular interface? As far as I know, there isn't a built-in function to do this directly. What options do I have (if any)?

Answer

user19302 picture user19302 · Nov 8, 2008
interface IInterface
{
}

class TheClass implements IInterface
{
}

$cls = new TheClass();
if ($cls instanceof IInterface) {
    echo "yes";
}

You can use the "instanceof" operator. To use it, the left operand is a class instance and the right operand is an interface. It returns true if the object implements a particular interface.