Checking if an instance's class implements an interface?
Wilco’s Question:
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)?
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.
You can also do the following
public function yourMethod(YourInterface $objectSupposedToBeImplementing) {
//.....
}
It will throw an recoverable error if the $objectSupposedToBeImplementing
does not implement YourInterface
Interface.