class_implements în PHP

Returnează interfețele implementate de o clasă sau de un obiect, inclusiv cele moștenite.

Sintaxă
class_implements($object_or_class, bool $autoload = true): array|false

Ce face class_implements

class_implements returnează un tablou în care cheile și valorile sunt numele interfețelor. Include interfețele implementate de clasele părinte și cele extinse de alte interfețe.

Pentru o singură verificare este mai simplu $obiect instanceof Interfata; funcția este utilă când vrei lista completă.

Parametri

Parametru Descriere
$object_or_class Obiectul sau numele clasei.
$autoload Opțional. false ca să nu pornească autoloader-ul.

Ce returnează

Tabloul interfețelor sau false dacă clasa nu există.

Exemple

Exemplul 1: Interfețe proprii și din PHP

<?php
interface Exportabil {}
class Colectie implements Countable, IteratorAggregate
{
    public function count(): int { return 0; }
    public function getIterator(): Iterator { return new ArrayIterator([]); }
}
class Raport extends Colectie implements Exportabil {}

print_r(class_implements(new Raport()));

Rezultat

Array
(
    [Countable] => Countable
    [IteratorAggregate] => IteratorAggregate
    [Traversable] => Traversable
    [Exportabil] => Exportabil
)

Greșeli frecvente

  • Dai un nume de clasă inexistent. Primești un avertisment și false; verifică întâi cu class_exists.

Comenzi înrudite

  • class_parents: Returnează toate clasele părinte ale unei clase, de la părintele direct până la cel mai vechi strămoș.
  • class_uses: Returnează trait-urile folosite direct de o clasă (fără cele ale claselor părinte).
  • instanceof: Verifică dacă un obiect este de o anumită clasă, extinde acea clasă sau implementează o interfață.
  • interface / implements: O interfață este o listă de metode pe care o clasă promite să le aibă. Clasa le scrie cu implements.