(PHP 5, PHP 7, PHP 8)
class_implements — Возвращает список интерфейсов, которые реализовал класс или унаследовал интерфейс
Функция возвращает массив с названиями интерфейсов, которые реализует
объект или класс 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().
instanceof