Funzioni di callback PHP
Funzioni di richiamata
Una funzione di callback (spesso indicata semplicemente come "callback") è una funzione che viene passata come argomento in un'altra funzione.
Qualsiasi funzione esistente può essere utilizzata come funzione di callback. Per utilizzare una funzione come funzione di callback, passare una stringa contenente il nome della funzione come argomento di un'altra funzione:
Esempio
Passa un callback alla array_map()
funzione di PHP per calcolare la lunghezza di ogni stringa in un array:
<?php
function my_callback($item) {
return strlen($item);
}
$strings = ["apple", "orange",
"banana", "coconut"];
$lengths =
array_map("my_callback", $strings);
print_r($lengths);
?>
A partire dalla versione 7, PHP può passare funzioni anonime come funzioni di callback:
Esempio
Usa una funzione anonima come callback per la funzione di PHP array_map()
:
<?php
$strings = ["apple", "orange", "banana", "coconut"];
$lengths =
array_map( function($item) { return strlen($item); } , $strings);
print_r($lengths);
?>
Richiamate nelle funzioni definite dall'utente
Le funzioni ei metodi definiti dall'utente possono anche accettare le funzioni di callback come argomenti. Per utilizzare le funzioni di callback all'interno di una funzione o un metodo definito dall'utente, chiamalo aggiungendo parentesi alla variabile e passa argomenti come con le normali funzioni:
Esempio
Esegui una richiamata da una funzione definita dall'utente:
<?php
function exclaim($str) {
return $str . "! ";
}
function ask($str) {
return $str . "? ";
}
function
printFormatted($str, $format) {
// Calling the $format callback
function
echo $format($str);
}
// Pass "exclaim" and "ask" as callback
functions to printFormatted()
printFormatted("Hello world", "exclaim");
printFormatted("Hello world", "ask");
?>