interface_exists

funkcja

Sprawdza, czy interfejs o podanej nazwie istnieje. Analogiczna do `class_exists`, ale zwraca `true` tylko dla interfejsów, nie dla klas ani traitów.

interface_exists(string $interface, bool $autoload = true): bool

interface_exists zwraca true, gdy PHP zna interfejs o podanej nazwie — z uwzględnieniem przestrzeni nazw. Parametr $autoload (domyślnie true) kontroluje, czy wywołać autoloader przed sprawdzeniem. Funkcja pozwala odróżnić interfejsy od klas i traitów o tej samej nazwie, co jest przydatne przy dynamicznym ładowaniu kontraktów lub walidacji architektury w narzędziach developerskich. Dla klas używaj class_exists, dla traitów — trait_exists.

<?php
declare(strict_types=1);

interface Serializowalny
{
    public function serialize(): string;
}

interface Loggowalny
{
    public function log(string $komunikat): void;
}

var_dump(interface_exists('Serializowalny'));    // bool(true)
var_dump(interface_exists('Loggowalny'));        // bool(true)
var_dump(interface_exists('NieIstnieje'));       // bool(false)

// Klasa o tej samej nazwie co interfejs — interface_exists rozróżnia:
class Pomocnik {}
var_dump(interface_exists('Pomocnik'));          // bool(false)
var_dump(class_exists('Pomocnik'));              // bool(true)
📘 Naucz się w lekcji →