array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.class-implements.php', 1 => 'class_implements', ), 'up' => array ( 0 => 'ref.spl.php', 1 => 'Функции SPL', ), 'prev' => array ( 0 => 'ref.spl.php', 1 => 'Функции SPL', ), 'next' => array ( 0 => 'function.class-parents.php', 1 => 'class_parents', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/spl/functions/class-implements.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5, PHP 7, PHP 8)
class_implements — Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе
Функция возвращает массив имён интерфейсов, реализованных в заданном классе
object_or_class
и его родительских классах.
object_or_class
Объект (экземпляр класса) или строка (имя класса или интерфейса).
autoload
Нужно ли автоматически подгружать класс, если он ещё не загружен.
В случае успешного выполнения будет возвращён массив, если заданный класс не существует, возвращается 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();
// использование автозагрузки для загрузки ещё незагруженного класса 'not_loaded'
print_r(class_implements('not_loaded', true));
?>
Вывод приведённого примера будет похож на:
Array ( [foo] => foo ) Array ( [foo] => foo ) Array ( [interface_of_not_loaded] => interface_of_not_loaded )
Замечание: Для проверки того, что объект реализует интерфейс, следует использовать
instanceof
или функцию is_a().
instanceof