Funzioni callback
Fa parte della sezione Logica e flusso del percorso PHP di Coddy. Lezione 4 di 68.
Una funzione di callback è una funzione che viene passata come argomento a un’altra funzione. Invece di chiamare subito la funzione, ne passi il nome affinché la funzione che la riceve possa chiamarla più tardi, quando necessario.
Per passare una funzione come callback, basta usare il nome della funzione come stringa:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
function processUser($username, $callback) {
// Esegui qualche elaborazione...
$callback($username); // Chiama la funzione di callback
}
processUser("Alice", "greet"); // Produce: Hello, Alice!
?>In questo esempio, "greet" viene passato come callback a processUser(). La funzione processUser() chiama quindi il callback utilizzando la stringa come nome di una funzione.
I callback sono incredibilmente utili perché rendono le tue funzioni più flessibili. La stessa funzione può eseguire azioni diverse a seconda del callback che le passi. Questo concetto è fondamentale per molte funzioni integrate di PHP, come array_map() e array_filter(), che incontrerai più avanti in questo corso.
Sfida
FacileCrea due funzioni: una chiamata formatUppercase che accetta una stringa e la restituisce in maiuscolo, e un'altra chiamata formatLowercase che accetta una stringa e la restituisce in minuscolo.
Poi crea una funzione chiamata applyFormat che accetta due parametri: una stringa di testo e il nome di una funzione di callback. Questa funzione deve applicare la callback al testo e restituire il risultato.
Riceverai due input: il tipo di operazione ("upper" o "lower") e il testo da formattare. Leggi entrambi gli input, determina quale callback usare in base al tipo di operazione, chiama applyFormat con la callback appropriata e stampa il risultato formattato.
Formato dell'input: Due righe: la prima riga contiene il tipo di operazione ("upper" o "lower"), la seconda riga contiene il testo da formattare
Output previsto: Il testo formattato in base al tipo di operazione
Provalo tu
<?php
// Leggi l'input
$operation = trim(fgets(STDIN));
$text = trim(fgets(STDIN));
// TODO: Scrivi il tuo codice qui sotto
// Crea la funzione formatUppercase
// Crea la funzione formatLowercase
// Crea la funzione applyFormat
// Determina quale callback usare in base al tipo di operazione
// Chiama applyFormat con il callback appropriato
// 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