Menu
Coddy logo textTech

Używanie „call_user_func”

Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 5 z 68.

Funkcja call_user_func() umożliwia dynamiczne wywoływanie funkcji w PHP. Zamiast wywoływać funkcję bezpośrednio, podając jej nazwę, możesz przechować nazwę funkcji w zmiennej typu string i użyć call_user_func(), aby ją wykonać.

Oto podstawowa składnia:

<?php
function greet() {
    echo "Hello World!";
}

$functionName = "greet";
call_user_func($functionName);  // Wyświetla: Hello World!
?>

Jest to szczególnie przydatne, gdy trzeba wywoływać różne funkcje na podstawie danych wprowadzonych przez użytkownika lub określonych warunków. Możesz także przekazywać argumenty do funkcji, dodając je jako dodatkowe parametry:

<?php
function add($a, $b) {
    return $a + $b;
}

$operation = "add";
$result = call_user_func($operation, 5, 3);
echo $result;  // Wyświetla: 8
?>

To dynamiczne wywoływanie funkcji jest szczególnie przydatne podczas tworzenia elastycznych aplikacji, w których konkretna funkcja do wykonania jest określana w czasie wykonywania programu, na przykład kalkulatorów, procesorów poleceń lub systemów routingu.

challenge icon

Wyzwanie

Łatwy

Utwórz trzy funkcje: multiply, która przyjmuje dwie liczby i zwraca ich iloczyn, subtract, która przyjmuje dwie liczby i zwraca ich różnicę, oraz divide, która przyjmuje dwie liczby i zwraca ich iloraz.

Otrzymasz trzy dane wejściowe: nazwę operacji ("multiply", "subtract" lub "divide") oraz dwie liczby. Wczytaj wszystkie trzy dane wejściowe, użyj call_user_func(), aby wykonać odpowiednią funkcję z użyciem tych dwóch liczb, i wypisz wynik.

Format danych wejściowych: Trzy wiersze — pierwszy wiersz zawiera nazwę operacji, drugi wiersz zawiera pierwszą liczbę, a trzeci wiersz zawiera drugą liczbę

Oczekiwane wyjście: Wynik operacji

Spróbuj swoich sił

<?php
// Odczytaj dane wejściowe
$operation = trim(fgets(STDIN));
$num1 = floatval(fgets(STDIN));
$num2 = floatval(fgets(STDIN));

// TODO: Utwórz tutaj trzy funkcje (multiply, subtract, divide)

// TODO: Użyj call_user_func(), aby wykonać odpowiednią funkcję

// Wyświetl wynik
echo $result;
?>
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator PHP online