Menu
Coddy logo textTech

Verwendung von 'call_user_func'

Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy — Lektion 5 von 68.

Die Funktion call_user_func() bietet eine leistungsstarke Möglichkeit, Funktionen in PHP dynamisch aufzurufen. Anstatt eine Funktion direkt über ihren Namen aufzurufen, können Sie den Funktionsnamen in einer String-Variablen speichern und call_user_func() verwenden, um sie auszuführen.

Hier ist die grundlegende Syntax:

<?php
function greet() {
    echo "Hello World!";
}

$functionName = "greet";
call_user_func($functionName);  // Ausgabe: Hello World!
?>

Dies wird besonders nützlich, wenn Sie verschiedene Funktionen basierend auf Benutzereingaben oder Bedingungen aufrufen müssen. Sie können der Funktion auch Argumente übergeben, indem Sie diese als zusätzliche Parameter einfügen:

<?php
function add($a, $b) {
    return $a + $b;
}

$operation = "add";
$result = call_user_func($operation, 5, 3);
echo $result;  // Ausgabe: 8
?>

Dieser dynamische Funktionsaufruf ist besonders wertvoll beim Erstellen flexibler Anwendungen, bei denen die spezifische auszuführende Funktion zur Laufzeit bestimmt wird, wie zum Beispiel bei Taschenrechnern, Befehlsprozessoren oder Routing-Systemen.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

challenge icon

Aufgabe

Einfach

Erstellen Sie drei Funktionen: multiply, die zwei Zahlen entgegennimmt und deren Produkt zurückgibt, subtract, die zwei Zahlen entgegennimmt und deren Differenz zurückgibt, und divide, die zwei Zahlen entgegennimmt und deren Quotienten zurückgibt.

Sie erhalten drei Eingaben: den Operationsnamen ("multiply", "subtract" oder "divide") und zwei Zahlen. Lesen Sie alle drei Eingaben ein, verwenden Sie call_user_func(), um die entsprechende Funktion mit den beiden Zahlen auszuführen, und geben Sie das Ergebnis aus.

Eingabeformat: Drei Zeilen - die erste Zeile enthält den Operationsnamen, die zweite Zeile enthält die erste Zahl, die dritte Zeile enthält die zweite Zahl

Erwartete Ausgabe: Das Ergebnis der Operation

Spickzettel

Die Funktion call_user_func() ermöglicht es Ihnen, Funktionen dynamisch aufzurufen, indem Sie eine String-Variable verwenden, die den Funktionsnamen enthält:

<?php
function greet() {
    echo "Hello World!";
}

$functionName = "greet";
call_user_func($functionName);  // Ausgabe: Hello World!
?>

Sie können Argumente an die Funktion übergeben, indem Sie diese als zusätzliche Parameter hinzufügen:

<?php
function add($a, $b) {
    return $a + $b;
}

$operation = "add";
$result = call_user_func($operation, 5, 3);
echo $result;  // Ausgabe: 8
?>

Probier es selbst

<?php
// Eingabe lesen
$operation = trim(fgets(STDIN));
$num1 = floatval(fgets(STDIN));
$num2 = floatval(fgets(STDIN));

// TODO: Erstellen Sie hier die drei Funktionen (multiplizieren, subtrahieren, dividieren)

// TODO: Verwenden Sie call_user_func(), um die entsprechende Funktion auszuführen

// Ergebnis ausgeben
echo $result;
?>
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf