Menu
Coddy logo textTech

Uso di 'call_user_func'

Fa parte della sezione Logica e flusso del percorso PHP di Coddy. Lezione 5 di 68.

La funzione call_user_func() offre un modo efficace per chiamare funzioni dinamicamente in PHP. Invece di chiamare una funzione direttamente usando il suo nome, puoi memorizzare il nome della funzione in una variabile stringa e usare call_user_func() per eseguirla.

Ecco la sintassi di base:

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

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

Questo diventa particolarmente utile quando devi chiamare funzioni diverse in base all'input dell'utente o alle condizioni. Puoi anche passare argomenti alla funzione includendoli come parametri aggiuntivi:

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

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

Questa chiamata dinamica delle funzioni è particolarmente preziosa quando si creano applicazioni flessibili in cui la funzione specifica da eseguire viene determinata in fase di esecuzione, come calcolatrici, processori di comandi o sistemi di routing.

challenge icon

Sfida

Facile

Crea tre funzioni: multiply, che accetta due numeri e restituisce il loro prodotto, subtract, che accetta due numeri e restituisce la loro differenza, e divide, che accetta due numeri e restituisce il loro quoziente.

Riceverai tre input: il nome dell’operazione ("multiply", "subtract" o "divide") e due numeri. Leggi tutti e tre gli input, usa call_user_func() per eseguire la funzione appropriata con i due numeri e stampa il risultato.

Formato di input: tre righe: la prima contiene il nome dell’operazione, la seconda contiene il primo numero e la terza contiene il secondo numero

Output previsto: il risultato dell’operazione

Provalo tu

<?php
// Leggi l'input
$operation = trim(fgets(STDIN));
$num1 = floatval(fgets(STDIN));
$num2 = floatval(fgets(STDIN));

// TODO: Crea qui le tre funzioni (multiply, subtract, divide)

// TODO: Usa call_user_func() per eseguire la funzione appropriata

// Mostra il risultato
echo $result;
?>
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore PHP online