Menu
CoddyTech

Funkcje zmienne

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

Funkcje zmienne oferują inny sposób dynamicznego wywoływania funkcji w PHP. Zamiast używać call_user_func(), możesz bezpośrednio wywołać funkcję, traktując zmienną zawierającą nazwę funkcji tak, jakby była samą funkcją.

Składnia jest prosta: jeśli masz zmienną zawierającą nazwę funkcji, możesz wywołać tę funkcję, dodając nawiasy do zmiennej:

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

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

To działa również z funkcjami, które przyjmują parametry. Po prostu przekazujesz argumenty w nawiasach:

<?php
function greet($name) {
    echo "Hello, " . $name . "!";
}

$func = "greet";
$func("Alice");  // Wypisuje: Hello, Alice!
?>

Funkcje zmiennych zapewniają przejrzysty i intuicyjny sposób dynamicznego wykonywania kodu. Ta funkcja jest szczególnie przydatna, gdy trzeba wywoływać różne funkcje na podstawie warunków lub danych wejściowych użytkownika, dzięki czemu kod staje się bardziej elastyczny i łatwiej się dostosowuje.

challenge icon

Wyzwanie

Łatwy

Utwórz trzy funkcje: calculateArea, która przyjmuje dwie liczby (długość i szerokość) i zwraca ich iloczyn, calculatePerimeter, która przyjmuje dwie liczby i zwraca dwukrotność ich sumy, oraz calculateDiagonal, która przyjmuje dwie liczby i zwraca pierwiastek kwadratowy z sumy ich kwadratów.

Otrzymasz trzy dane wejściowe: nazwę operacji ("area", "perimeter" lub "diagonal"), długość i szerokość. Odczytaj wszystkie trzy dane wejściowe, zapisz nazwę funkcji w zmiennej i wywołaj tę funkcję za pomocą składni wywołania funkcji przez zmienną, przekazując jej dwa wymiary. Zapisz zwrócony wynik w $result: poniższa linia kodu go wypisuje.

Format danych wejściowych: Trzy wiersze — pierwszy wiersz zawiera nazwę operacji, drugi wiersz zawiera długość (liczbę, która może zawierać część dziesiętną), a trzeci wiersz zawiera szerokość (liczbę, która może zawierać część dziesiętną).

Oczekiwany wynik: Wynik obliczenia

Spróbuj swoich sił

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

// TODO: Utwórz tutaj trzy funkcje (calculateArea, calculatePerimeter, calculateDiagonal)

// TODO: Wywołaj odpowiednią funkcję przy użyciu składni zmiennej funkcji i zapisz wynik w $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