ReflectionClass::implementsInterface()
(PHP 5, PHP 7)
接口的实现
说明
public ReflectionClass::implementsInterface(string $interface): bool
检查它是否实现了一个接口(interface)。
参数
- $interface
接口(interface)的名称。
返回值
成功时返回TRUE
,或者在失败时返回FALSE
。
参见
- ReflectionClass::isInterface() 检查类是否是一个接口(interface)
- ReflectionClass::isSubclassOf() 检查是否为一个子类
interface_exists()
检查接口是否已被定义- Object Interfaces
interface Factory { public function sayHello(); } class ParentClass implements Factory { public function sayHello() { echo "hello\n"; } } class ChildrenClass extends ParentClass { } $reflect = new ReflectionClass('ParentClass'); var_dump($reflect->implementsInterface('Factory')); $second_ref = new ReflectionClass('ChildrenClass'); var_dump($second_ref->isSubclassOf('ParentClass')); $third_ref = new ReflectionClass('Factory'); var_dump($third_ref->isInterface()); //can not be called as static var_dump(ReflectionClass::isInterface('Factory')); die; //#result bool(true) bool(true) bool(true) PHP Fatal error: Non-static method ReflectionClass::isInterface() cannot be called statically
Note that this method also returns true when the thing you're reflecting is the interface you're checking for: <?php interface MyInterface {} $reflect = new ReflectionClass('MyInterface'); var_dump($reflect->implementsInterface('MyInterface')); // bool(true) ?>
//checks that whether class Fruit implements interface apple or not interface Apple { function taste(); } class Fruit implements Apple { function taste() { echo "Seet"; } } $obj=new ReflectionClass('Fruit'); var_dump($obj->implementsInterface('Apple')); //Here it will checks that whether class Fruit implements interface apple or not