与えられたクラスあるいはインターフェイスが実装しているインターフェイスを返す

# class_implements

(PHP 5, PHP 7)

class_implements — 与えられたクラスあるいはインターフェイスが実装しているインターフェイスを返す

### 説明

class_implements ( mixed `$class` [, bool `$autoload` = true ] ) : array

この関数は、与えられたクラス `class` とその親が実装しているインターフェイスを配列で返します。

### パラメータ

`class`

  オブジェクト (クラスのインスタンス) もしくは文字列 (クラス名あるいはインターフェイス名) を指定します。

`autoload`

  __autoload() マジックメソッドを通じて、 この関数にクラスを自動的にロードさせるかどうかを指定します。

### 返り値

成功した場合に配列、エラー時に `FALSE` を返します。

### 変更履歴

バージョン | 説明
--- | ---
5.1.0 | 文字列として `class` パラメータを渡すオプションが追加されました。 `autoload` パラメータが追加されました。

### 例

例1 class_implements() の例

`<?php
interface foo { }
class bar implements foo {}
print_r(class_implements(new bar));
// PHP 5.1.0 以降、パラメータを文字列として指定しても良い
print_r(class_implements('bar'));
function __autoload($class_name) {
require_once $class_name . '.php';
}
// 'not_loaded' クラスをロードするために __autoload を使用する
print_r(class_implements('not_loaded', true));
?>`

上の例の出力は、 たとえば以下のようになります。

    Array
    (
        [foo] => foo
    )

    Array
    (
        [interface_of_not_loaded] => interface_of_not_loaded
    )

### 参考

- class_parents() - 与えられたクラスの親クラスを返す
- get_declared_interfaces() - 宣言されている全てのインターフェイスの配列を返す