is_callable

funkcja

Sprawdza, czy podana wartość może być wywołana jako funkcja: nazwa funkcji, domknięcie, tablica [obiekt, metoda] lub obiekt z __invoke.

is_callable(mixed $value, bool $syntax_only = false): bool

is_callable zwraca true, gdy przekazana wartość jest czymś, co PHP może wywołać: nazwą istniejącej funkcji jako string ('strlen'), domknięciem (Closure), tablicą [$obiekt, 'metoda'] czy obiektem implementującym __invoke. Domyślnie sprawdza faktyczne istnienie funkcji/metody — nie tylko poprawność składni. Przydaje się w kodzie, który przyjmuje callback od użytkownika i chce go zwalidować przed wywołaniem.

<?php
declare(strict_types=1);

function zastosuj(mixed $callback, int $wartość): int
{
    if (!is_callable($callback)) {
        throw new \InvalidArgumentException('Argument musi być wywoływalny.');
    }
    return $callback($wartość);
}

echo zastosuj(fn($x) => $x * 2, 5);  // 10
echo zastosuj('abs', -7);             // 7
// zastosuj('nieistniejaca', 1);      // rzuca wyjątek
📘 Naucz się w lekcji →