PHP 8.4.0 RC4 available for testing

ReflectionClass::getInterfaceNames

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionClass::getInterfaceNamesRécupère les noms des interfaces

Description

public ReflectionClass::getInterfaceNames(): array

Récupère les noms des interfaces.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau numérique dont les valeurs sont les noms des interfaces.

Exemples

Exemple #1 Exemple avec ReflectionClass::getInterfaceNames()

<?php
interface Foo { }

interface
Bar { }

class
Baz implements Foo, Bar { }

$rc1 = new ReflectionClass("Baz");

print_r($rc1->getInterfaceNames());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Foo
    [1] => Bar
)

Voir aussi

add a note

User Contributed Notes 2 notes

up
11
pinpin
13 years ago
It seems the interface names are actually listed in a defined order:
- "extends" takes precedence over "implements" (i.e. first will be interfaces from (implemented in) the parent class (if any), then interfaces implemented in the class itself)
- when multiple interfaces are implemented at one time/level, it can be:
+ from an "implements" : they're listed in the defined order
+ from an "extends" (a class extends another class which implements multiple interfaces; or an interface extends multiple interfaces) : they're listed in REVERSE order

<?php
interface Foo {}
interface
Bar {}
interface
Other {}
interface
Foobar extends Foo, Bar {}
interface
Barfoo extends Bar, Foo {}

class
Test1 implements Foo, Bar {}
class
Test2 implements Bar, Foo {}

class
Test3 extends Test1 {}
class
Test4 extends Test2 {}

class
Test5 extends Test1 implements Other {}

class
Test6 implements Foobar, Other {}
class
TestO implements Other {}
class
Test7 extends TestO implements Barfoo {}

$r=new ReflectionClass('Test1');
print_r($r->getInterfaceNames()); // Foo, Bar

$r=new ReflectionClass('Test2');
print_r($r->getInterfaceNames()); // Bar, Foo

$r=new ReflectionClass('Test3');
print_r($r->getInterfaceNames()); // Bar, Foo

$r=new ReflectionClass('Test4');
print_r($r->getInterfaceNames()); // Foo, Bar

$r=new ReflectionClass('Test5');
print_r($r->getInterfaceNames()); // Bar, Foo, Other

$r=new ReflectionClass('Test6');
print_r($r->getInterfaceNames()); // Foobar, Bar, Foo, Other

$r=new ReflectionClass('Test7');
print_r($r->getInterfaceNames()); // Other, Barfoo, Foo, Bar
?>
up
2
pvdhurk
4 years ago
For the record, it will return the full name (not the short name) for each Interface

Example with namespace would've helped.
To Top