Variablenfunktionen
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy. Lektion 6 von 68.
Variable Funktionen bieten eine weitere Möglichkeit, Funktionen in PHP 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 der Variable Klammern hinzufügst:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // Ausgabe: Hello World!
?>Das funktioniert auch mit functions, die Parameter akzeptieren. Du übergibst die Argumente einfach innerhalb der Klammern:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // Ausgabe: Hello, Alice!
?>Variable functions bieten eine klare und intuitive Möglichkeit, Code dynamisch auszuführen. Diese Funktion ist besonders nützlich, wenn du abhängig von Bedingungen oder Benutzereingaben unterschiedliche functions aufrufen musst, wodurch dein Code flexibler und anpassungsfähiger wird.
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 Operationsnamen ("area", "perimeter" oder "diagonal"), die Länge und die Breite. Lies alle drei Eingaben ein, speichere den Funktionsnamen in einer Variablen, rufe diese Funktion mithilfe der Variablenfunktionssyntax mit den beiden Maßen auf und gib das Ergebnis aus.
Eingabeformat: Drei Zeilen – die erste Zeile enthält den Operationsnamen, die zweite Zeile enthält die Länge (eine Zahl, die Dezimalstellen enthalten kann), die dritte Zeile enthält die Breite (eine Zahl, die Dezimalstellen enthalten kann).
Erwartete Ausgabe: Das Ergebnis der Berechnung
Probier es selbst
<?php
// Eingaben lesen
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));
// TODO: Erstelle die drei Funktionen hier (calculateArea, calculatePerimeter, calculateDiagonal)
// TODO: Rufe die entsprechende Funktion mit variabler Funktionssyntax auf und speichere das Ergebnis
// 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Übe selbstständig: Online-PHP-Compiler