Eventuali duplicati:
Immediately executing anonymous functionsPosso valutare immediatamente una funzione anonima?
voglio valutare immediatamente una funzione anonima piuttosto che esso appare come un oggetto di chiusura nel metodo args. È possibile?
Ad esempio:
$obj = MyClass;
$obj->Foo(function(){return "bar";}); // passes a Closure into Foo()
$obj->Foo(function(){return "bar";}()); // passes the string "bar" into Foo()?
La terza linea è la sintassi illegale - non v'è alcun modo per fare questo?
Grazie
È difficile immaginare perché è necessario farlo? Perché non basta assegnare il risultato della funzione a una variabile e quindi passare quella variabile? –
Anche in questi esempi la tua funzione è praticamente solo una funzione anonima, non ha caratteristiche di chiusura, non sta 'ricordando' alcuna variabile dal suo contesto attuale –
Mi rendo conto che, davvero non volevo spiegare perché ho bisogno per fare questo - ovviamente è una situazione insolita. – Tom