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.
Sfida
FacileCrea 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;
?>Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Funzioni avanzate
Funzioni anonimeClosure e 'use'Funzioni frecciaFunzioni callbackUso di 'call_user_func'Funzioni variabiliPassaggio per riferimentoFunzioni ricorsiveRiepilogo: carrellata di funzioni4Array multidimensionali
Creare un array 2DAccedere agli elementi di un array 2DModificare gli elementi di un array 2DIterare con cicli annidatiArray associativi 2DRipasso: esercizio con una griglia semplice2Manipolazioni avanzate degli array
Aggiungere con 'array_push'Rimuovere con 'array_pop'Aggiungere con 'array_unshift'Rimuovere con 'array_shift'Unire array indicizzatiUnire array associativiEstrarre con 'array_slice'Valori con 'in_array'Chiavi con 'array_search'Riepilogo: esercizio playlist3Ordinare gli array
Ordina gli array indicizzati in ordine crescenteOrdina gli array indicizzati in ordine decrescenteOrdina gli array associativi per valoreOrdina gli array associativi per chiaveOrdinamento naturaleOrdinamento personalizzato con 'usort'Ripasso: ordinamento della classificaEsercitati da solo: Compilatore PHP online