trait_exists

funkcja

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

trait_exists(string $trait, bool $autoload = true): bool

trait_exists zwraca true, gdy PHP zna trait o podanej nazwie — z uwzględnieniem przestrzeni nazw. Parametr $autoload (domyślnie true) decyduje, czy uruchomić autoloader przed sprawdzeniem. Traitów nie można tworzyć przez new ani sprawdzać instanceof, dlatego trait_exists jest jedynym pewnym sposobem weryfikacji ich istnienia w kodzie dynamicznym. Dla klas używaj class_exists, dla interfejsów — interface_exists.

<?php
declare(strict_types=1);

trait Loggowalny
{
    public function log(string $msg): void
    {
        echo "[LOG] {$msg}\n";
    }
}

trait Walidowalny
{
    abstract public function waliduj(): bool;
}

var_dump(trait_exists('Loggowalny'));     // bool(true)
var_dump(trait_exists('Walidowalny'));   // bool(true)
var_dump(trait_exists('NieIstnieje'));   // bool(false)

// Dla porównania — klasa o tej samej nazwie:
class Pomocnik {}
var_dump(trait_exists('Pomocnik'));       // bool(false)
var_dump(class_exists('Pomocnik'));       // bool(true)
📘 Naucz się w lekcji →