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!
?>Działa to również w przypadku funkcji, które przyjmują parametry. Wystarczy przekazać argumenty w nawiasach:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // Wyświetla: 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 w zależności od warunków lub danych wejściowych użytkownika, dzięki czemu kod jest bardziej elastyczny i łatwiej go dostosować.
Wyzwanie
ŁatwyUtwó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ę działania ("area", "perimeter" lub "diagonal"), długość i szerokość. Odczytaj wszystkie trzy dane wejściowe, zapisz nazwę funkcji w zmiennej, wywołaj tę funkcję, używając składni wywołania funkcji przez zmienną i podając dwa wymiary, a następnie wypisz wynik.
Format danych wejściowych: Trzy wiersze — pierwszy wiersz zawiera nazwę działania, 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ą)
Oczekiwane wyjście: Wynik obliczenia
Spróbuj swoich sił
<?php
// Wczytaj 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ę, używając składni wywołania funkcji przez zmienną, i zapisz wynik
// Wyświetl wynik
echo $result;
?>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
1Zaawansowane funkcje
Funkcje anonimoweDomknięcia i „use”Funkcje strzałkoweFunkcje zwrotneUżywanie „call_user_func”Funkcje zmiennePrzekazywanie przez referencjęFunkcje rekurencyjnePowtórka: przegląd funkcji4Tablice wielowymiarowe
Tworzenie tablicy 2DDostęp do elementów tablicy 2DModyfikowanie elementów tablicy 2DIterowanie z użyciem zagnieżdżonych pętliAsocjacyjne tablice 2DPodsumowanie: ćwiczenie z prostą siatką2Zaawansowane operacje na tablicach
Dodawanie za pomocą 'array_push'Usuwanie za pomocą 'array_pop'Dodawanie za pomocą 'array_unshift'Usuwanie za pomocą 'array_shift'Łączenie tablic indeksowanychŁączenie tablic asocjacyjnychWyodrębnianie za pomocą 'array_slice'Wyszukiwanie wartości za pomocą 'in_array'Wyszukiwanie kluczy za pomocą 'array_search'Podsumowanie: ćwiczenie z playlistą3Sortowanie tablic
Sortowanie tablic indeksowanych rosnącoSortowanie tablic indeksowanych malejącoSortowanie tablic asocjacyjnych według wartościSortowanie tablic asocjacyjnych według kluczaSortowanie w kolejności naturalnejSortowanie niestandardowe za pomocą 'usort'Podsumowanie: sortowanie tabeli wynikówPoćwicz samodzielnie: Kompilator PHP online