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