class_implements

(PHP 5, PHP 7, PHP 8)

class_implements Возвращает список интерфейсов, которые реализовал класс или унаследовал интерфейс

Описание

class_implements(object|string $object_or_class, bool $autoload = true): array|false

Функция возвращает массив с названиями интерфейсов, которые реализует объект или класс object_or_class и его родители.

Список параметров

object_or_class

Экземпляр класса или строка с названием класса или интерфейса.

autoload

Требуется ли автозагрузка класса, если PHP ещё не загрузил класс.

Возвращаемые значения

Функция возвращает массив, если выполнилась успешно, или false, если класс не определили или не загрузили в текущую область видимости.

Примеры

Пример #1 Пример получения списка интерфейсов функцией class_implements()

<?php

interface Foo {}
class
Bar implements Foo {}

print_r(class_implements(new Bar()));

// Возможно также указать параметр как строку
print_r(class_implements('Bar'));


spl_autoload_register();

// Автозагрузка класса 'NotLoaded'
print_r(class_implements('NotLoaded', true));

?>

Вывод приведённого примера будет похож на:

Array
(
    [foo] => foo
)
Array
(
    [foo] => foo
)
Array
(
    [interface_of_not_loaded] => interface_of_not_loaded
)

Примечания

Замечание: Реализует ли класс объекта конкретный интерфейс, проверяют оператором instanceof или вызывают функцию is_a().

Смотрите также

  • class_parents() - Возвращает список родительских классов заданного класса
  • get_declared_interfaces() - Возвращает массив объявленных интерфейсов
  • is_a() - Проверяет, принадлежит ли объект типу или подтипу
  • instanceof