PHP: class_implements - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

class_parents SimpleXMLIterator::valid

Last updated: Sat, 27 Jan 2007

view this page in

# class_implements

(PHP 5)

class_implements -- Return the interfaces which are implemented by the given class

## Описание

array class_implements ( mixed class [, bool autoload] )

This function returns an array with the names of the interfaces that the given `class` and its parents implement.

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

`class`

  An object (class instance) or a string (class name).

`autoload`

  Whether to allow this function to load the class automatically through the __autoload magic method. Defaults to `TRUE`.

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

Returns an array or `FALSE` on error.

## Список изменений

Версия | Описание
--- | ---
5.1.0 | Added the option to pass the `class` parameter as a string. Added the `autoload` parameter.

## Примеры

Пример 1. class_implements() example

`<?php
interface foo { }
class bar implements foo {}
print_r(class_implements(new bar));
// since PHP 5.1 you may also specify the parameter as a string
print_r(class_implements('bar'));
function __autoload($class_name) {
require_once $class_name . '.php';
}
// use __autoload to load the 'not_loaded' class
print_r(class_implements('not_loaded', true));
?>`

Результатом выполнения данного примера будет что-то подобное:

    Array
    (
        [foo] => foo
    )

    Array
    (
        [interface_of_not_loaded] => interface_of_not_loaded
    )

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

class_parents()

add a note User Contributed Notes
class_implements
24-Jan-2006 09:51
`You can use Reflection class instead:
<?php
$r = new ReflectionClass($class);
foreach($r->getInterfaces() as $in)
{
$in->getName();
}`
trollll23 at yahoo dot com
25-Oct-2005 12:57
`Luckily, it prints out superinterfaces as well in reverse order so iterative searching works fine:
<?php
interface InterfaceA { }
interface InterfaceB extends InterfaceA { }
class MyClass implements InterfaceB { }
print_r(class_implements(new MyClass()));
?>
prints out:
Array
(
[InterfaceB] => InterfaceB
[InterfaceA] => InterfaceA
)`
ludvig dot ericson at gmail dot nospam dot com
01-Aug-2005 12:41
`Hint:
<?php
in_array("your-interface", class_implements($object_or_class_name));
?>
would check if 'your-interface' is ONE of the implemented interfaces.
Note that you can use something similar to be sure the class only implements that, (whyever you would want that?)
<?php
array("your-interface") == class_implements($object_or_class_name);
?>
I use the first technique to check if a module has the correct interface implemented, or else it throws an exception.`
add a note
class_parents SimpleXMLIterator::valid

Last updated: Sat, 27 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 10:36:09 2007 PST