Menu
Coddy logo textTech

Funkcje zwrotne

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

Funkcja zwrotna to funkcja przekazywana jako argument innej funkcji. Zamiast wywoływać ją od razu, przekazujesz jej nazwę, aby funkcja, która ją otrzymuje, mogła wywołać ją później, gdy będzie potrzebna.

Aby przekazać funkcję jako funkcję zwrotną, wystarczy użyć jej nazwy jako ciągu znaków:

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

function processUser($username, $callback) {
    // Wykonaj pewne przetwarzanie...
    $callback($username);  // Wywołaj funkcję zwrotną
}

processUser("Alice", "greet");  // Wypisuje: Hello, Alice!
?>

W tym przykładzie "greet" jest przekazywane jako funkcja zwrotna do processUser(). Funkcja processUser() wywołuje następnie funkcję zwrotną, używając ciągu znaków jako nazwy funkcji.

Funkcje zwrotne są niezwykle przydatne, ponieważ zwiększają elastyczność funkcji. Ta sama funkcja może wykonywać różne działania w zależności od tego, którą funkcję zwrotną jej przekażesz. Ta koncepcja jest podstawą działania wielu wbudowanych funkcji PHP, takich jak array_map() i array_filter(), które poznasz później w tym kursie.

challenge icon

Wyzwanie

Łatwy

Utwórz dwie funkcje: jedną o nazwie formatUppercase, która przyjmuje ciąg znaków i zwraca go zapisany wielkimi literami, oraz drugą o nazwie formatLowercase, która przyjmuje ciąg znaków i zwraca go zapisany małymi literami.

Następnie utwórz funkcję o nazwie applyFormat, która przyjmuje dwa parametry: ciąg tekstowy i nazwę funkcji zwrotnej. Funkcja ta powinna zastosować funkcję zwrotną do tekstu i zwrócić wynik.

Otrzymasz dwa dane wejściowe: typ operacji ("upper" lub "lower") oraz tekst do sformatowania. Odczytaj oba dane wejściowe, ustal, której funkcji zwrotnej użyć na podstawie typu operacji, wywołaj applyFormat z odpowiednią funkcją zwrotną i wypisz sformatowany wynik.

Format danych wejściowych: Dwa wiersze — pierwszy wiersz zawiera typ operacji ("upper" lub "lower"), drugi wiersz zawiera tekst do sformatowania

Oczekiwany wynik: Sformatowany tekst zależnie od typu operacji

Spróbuj swoich sił

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

// TODO: Napisz swój kod poniżej
// Utwórz funkcję formatUppercase
// Utwórz funkcję formatLowercase
// Utwórz funkcję applyFormat
// Określ, której funkcji zwrotnej użyć na podstawie typu operacji
// Wywołaj applyFormat z odpowiednią funkcją zwrotną

// 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