ho visto questa pratica nella documentazione php:Perché funzione di negozio come variabile in PHP
$foo = function() {
echo 'foo';
}
$foo();
Perché l'hai fatto invece di:
function foo()
{
echo 'foo';
}
foo();
ho visto questa pratica nella documentazione php:Perché funzione di negozio come variabile in PHP
$foo = function() {
echo 'foo';
}
$foo();
Perché l'hai fatto invece di:
function foo()
{
echo 'foo';
}
foo();
Sono utili in un pochi modi. Personalmente li uso perché sono più facili da controllare rispetto alle funzioni effettive.
Ma anche, funzioni anonime possono fare questo:
$someVar = "Hello, world!";
$show = function() use ($someVar) {
echo $someVar;
}
$show();
funzioni anonime può "importare" variabili dal campo di applicazione al di fuori. La parte migliore è che è sicuro usare i loop (a differenza di JavaScript) perché richiede una copia della variabile da utilizzare con la funzione, a meno che tu non specifichi esplicitamente di passare per riferimento a use (&$someVar)
Potrebbe essere utile un esempio di utilizzo in un ciclo. – MichaelRushton
il comando use, salvavita! – Oritm
fyi: se stai cercando la migliore risposta, direi che il commento sopravanzato di @Laxus è molto utile (se non di più) – cwd
Viene spesso utilizzato anche per passare callbacks a funzioni come array_map
e molti altri
È estremamente utile in alcuni casi particolari. Ad esempio
Server::create('/')
->addGetRoute('test', function(){
return 'Yay!';
})
Il frammento di codice sopra riportato è un esempio di routing semplice in un'applicazione basata su REST.
vedere [Funzioni anonime] (http://php.net/manual/en/functions.anonymous.php) – Federkun
Si farebbe così in modo da poter passare quella funzione da un oggetto all'altro. – Lix
A volte le funzioni anonime sono molto utili. Ad esempio hai un modulo e devi convalidare un campo. Sei sicuro di non aver bisogno di questa funzione da nessuna parte, ma qui e devi passare l'argomento callable. Le funzioni anonime dell'IMO sono la strada da percorrere in questa situazione. – Eugene