call_user_func

funkcja

Wywołuje funkcję lub metodę przekazaną jako callable z podanymi argumentami. Pozwala dynamicznie wybierać, co wywołać, w czasie wykonania programu.

call_user_func(callable $callback, mixed ...$args): mixed

call_user_func pozwala wywołać funkcję, której nazwa lub definicja jest znana dopiero w czasie wykonania. Jako $callback możesz podać nazwę funkcji wbudowanej jako ciąg znaków, zamknięcie (closure), wyrażenie fn, a nawet metodę obiektu w formie [$obiekt, 'nazwaMetody'] lub metodę statyczną jako 'Klasa::metoda'.

W nowoczesnym PHP (od 7.4) zamknięcia i callable przekazuje się bezpośrednio — call_user_func jest przydatna głównie wtedy, gdy callable pochodzi z zewnątrz (np. z tablicy konfiguracyjnej, eventu, middleware). W PHP 8 nieprawidłowy callback powoduje TypeError — zamiast dawnego false dostaniesz wyjątek, który warto obsłużyć jawnie.

<?php
declare(strict_types=1);

$wynik = call_user_func('strtoupper', 'witaj');
echo $wynik; // wynik: WITAJ

// Z metodą obiektu:
$wynik2 = call_user_func([new DateTime('2024-01-15'), 'format'], 'd.m.Y');
echo $wynik2; // wynik: 15.01.2024
📘 Naucz się w lekcji →