Variablenfunktionen
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy. Lektion 6 von 68.
Variablenfunktionen bieten in PHP eine weitere Möglichkeit, Funktionen dynamisch aufzurufen. Anstatt call_user_func() zu verwenden, kannst du eine Funktion direkt aufrufen, indem du eine Variable, die den Funktionsnamen enthält, so behandelst, als wäre sie die Funktion selbst.
Die Syntax ist einfach: Wenn du eine Variable hast, die einen Funktionsnamen enthält, kannst du diese Funktion aufrufen, indem du Klammern an die Variable anhängst:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // Ausgabe: Hello World!
?>Das funktioniert auch mit Funktionen, die Parameter akzeptieren. Du übergibst die Argumente einfach in Klammern:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // Gibt aus: Hello, Alice!
?>Variablenfunktionen bieten eine übersichtliche und intuitive Möglichkeit, Code dynamisch auszuführen. Diese Funktion ist besonders nützlich, wenn du abhängig von Bedingungen oder Benutzereingaben verschiedene Funktionen aufrufen musst. Dadurch wird dein Code flexibler und anpassungsfähiger.
Aufgabe
EinfachErstelle drei Funktionen: calculateArea, die zwei Zahlen (Länge und Breite) entgegennimmt und ihr Produkt zurückgibt, calculatePerimeter, die zwei Zahlen entgegennimmt und das Doppelte ihrer Summe zurückgibt, und calculateDiagonal, die zwei Zahlen entgegennimmt und die Quadratwurzel aus der Summe ihrer Quadrate zurückgibt.
Du erhältst drei Eingaben: den Namen der Operation ("area", "perimeter" oder "diagonal"), die Länge und die Breite. Lies alle drei Eingaben ein, speichere den Funktionsnamen in einer Variablen und rufe diese Funktion mithilfe der variablen Funktionssyntax mit den beiden Maßen auf. Speichere den Rückgabewert in $result: Die Zeile unter deinem Code gibt ihn aus.
Eingabeformat: Drei Zeilen – die erste Zeile enthält den Namen der Operation, die zweite Zeile die Länge (eine Zahl, die Dezimalstellen enthalten kann), die dritte Zeile die Breite (eine Zahl, die Dezimalstellen enthalten kann)
Erwartete Ausgabe: Das Ergebnis der Berechnung
Probier es selbst
<?php
// Eingaben einlesen
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));
// TODO: Erstelle hier die drei Funktionen (calculateArea, calculatePerimeter, calculateDiagonal)
// TODO: Rufe die passende Funktion mithilfe der Syntax für variable Funktionen auf und speichere das Ergebnis in $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Übe selbstständig: Online-PHP-Compiler