• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • ReflectionClass::implementsInterface()

    (PHP 5, PHP 7)

    接口的实现

    说明

    publicReflectionClass::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