PHP Conference Japan 2024

ReflectionClass::implementsInterface

(PHP 5, PHP 7, PHP 8)

ReflectionClass::implementsInterface实现接口

描述

public ReflectionClass::implementsInterface(ReflectionClass|string $interface): bool

检查是否实现了某个接口。

参数

interface

接口名称。

返回值

成功返回 true,失败返回 false

错误/异常

ReflectionClass::implementsInterface() 如果 interface 不是接口,则抛出 ReflectionException 异常。

参见

添加注释

用户贡献注释 3 条注释

jtunaley at gmail dot com
6 年前
请注意,当您反射的对象正是您正在检查的接口时,此方法也会返回 true

<?php
interface MyInterface {}

$reflect = new ReflectionClass('MyInterface');
var_dump($reflect->implementsInterface('MyInterface')); // bool(true)
?>
dhairya dot coder at gmail dot com
8 年前
// 检查类 Fruit 是否实现接口 Apple

interface Apple {

function taste();
}

class Fruit implements Apple {

function taste() {
echo "Seet";
}
}

$obj=new ReflectionClass('Fruit');
var_dump($obj->implementsInterface('Apple')); // 此处检查类 Fruit 是否实现接口 Apple
keepchen2016 at gmail dot com
7 年前
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());

// 不能作为静态方法调用
var_dump(ReflectionClass::isInterface('Factory'));
die;
//#结果
bool(true)
bool(true)
bool(true)
PHP 严重错误:非静态方法 ReflectionClass::isInterface() 不能静态调用
To Top