Callback-Funktionen
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy — Lektion 4 von 68.
Eine Callback-Funktion ist eine Funktion, die als Argument an eine andere Funktion übergeben wird. Anstatt die Funktion sofort aufzurufen, übergeben Sie ihren Namen, damit die empfangende Funktion sie später bei Bedarf aufrufen kann.
Um eine Funktion als Callback zu übergeben, verwenden Sie einfach den Namen der Funktion als String:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
function processUser($username, $callback) {
// Etwas Verarbeitung durchführen...
$callback($username); // Die Callback-Funktion aufrufen
}
processUser("Alice", "greet"); // Ausgabe: Hello, Alice!
?>In diesem Beispiel wird "greet" als Callback an processUser() übergeben. Die processUser()-Funktion ruft dann den Callback auf, indem sie den String als Funktionsnamen verwendet.
Callbacks sind unglaublich nützlich, da sie Ihre Funktionen flexibler machen. Dieselbe Funktion kann verschiedene Aktionen ausführen, je nachdem, welchen Callback Sie ihr übergeben. Dieses Konzept ist grundlegend für viele der integrierten Funktionen von PHP wie array_map() und array_filter(), denen Sie später in diesem Kurs begegnen werden.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Aufgabe
EinfachErstellen Sie zwei Funktionen: eine namens formatUppercase, die einen String entgegennimmt und ihn in Großbuchstaben zurückgibt, und eine weitere namens formatLowercase, die einen String entgegennimmt und ihn in Kleinbuchstaben zurückgibt.
Erstellen Sie dann eine Funktion namens applyFormat, die zwei Parameter akzeptiert: einen Text-String und einen Namen einer Callback-Funktion. Diese Funktion soll den Callback auf den Text anwenden und das Ergebnis zurückgeben.
Sie erhalten zwei Eingaben: den Operationstyp ("upper" oder "lower") und den zu formatierenden Text. Lesen Sie beide Eingaben ein, bestimmen Sie basierend auf dem Operationstyp, welcher Callback verwendet werden soll, rufen Sie applyFormat mit dem entsprechenden Callback auf und geben Sie das formatierte Ergebnis aus.
Eingabeformat: Zwei Zeilen - die erste Zeile enthält den Operationstyp ("upper" oder "lower"), die zweite Zeile enthält den zu formatierenden Text
Erwartete Ausgabe: Der formatierte Text basierend auf dem Operationstyp
Spickzettel
Eine Callback-Funktion ist eine Funktion, die als Argument an eine andere Funktion übergeben wird. Anstatt die Funktion sofort aufzurufen, übergeben Sie ihren Namen, damit die empfangende Funktion sie später bei Bedarf aufrufen kann.
Um eine Funktion als Callback zu übergeben, verwenden Sie den Namen der Funktion als String:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
function processUser($username, $callback) {
// Etwas Verarbeitung durchführen...
$callback($username); // Die Callback-Funktion aufrufen
}
processUser("Alice", "greet"); // Ausgabe: Hello, Alice!
?>Callbacks machen Funktionen flexibler, indem sie verschiedene Aktionen ermöglichen, je nachdem, welcher Callback an sie übergeben wird.
Probier es selbst
<?php
// Eingabe lesen
$operation = trim(fgets(STDIN));
$text = trim(fgets(STDIN));
// TODO: Schreiben Sie Ihren Code unten
// Funktion formatUppercase erstellen
// Funktion formatLowercase erstellen
// Funktion applyFormat erstellen
// Bestimmen, welcher Callback basierend auf dem Operationstyp verwendet werden soll
// applyFormat mit dem entsprechenden Callback aufrufen
// Ergebnis ausgeben
echo $result;
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Funktionen
Anonyme FunktionenClosures und 'use'Arrow FunctionsCallback-FunktionenVerwendung von 'call_user_func'VariablenfunktionenReferenzübergabeRekursive FunktionenRückblick: Funktions-Medley4Mehrdimensionale Arrays
Ein 2D-Array erstellenZugriff auf 2D-Array-ElementeÄndern von 2D-Array-ElementenIterieren mit verschachtelten Schleifen2D assoziative ArraysZusammenfassung: Einfache Gitter-Übung2Fortgeschrittene Array-Manipulationen
Hinzufügen mit 'array_push'Entfernen mit 'array_pop'Hinzufügen mit 'array_unshift'Entfernen mit 'array_shift'Indizierte Arrays zusammenführenAssoziative Arrays zusammenführenExtrahieren mit 'array_slice'Werte mit 'in_array'Schlüssel mit 'array_search'Rückblick: Playlist-Übung3Arrays sortieren
Indizierte Arrays aufsteigend sortierenIndizierte Arrays absteigend sortierenAssoziative Arrays nach Wert sortierenAssoziative Arrays nach Schlüssel sortierenNatürliche SortierungBenutzerdefiniertes Sortieren mit 'usort'Recap: Leaderboard-Sortierung