Ero piuttosto entusiasta di leggere su anonymous functions in php, che consente di dichiarare una variabile che è la funzione più facile di quanto si possa fare con create_function. Ora mi chiedo se ho una funzione che passa una variabile, come posso controllarla per determinare se si tratta di una funzione? Non v'è alcuna funzione is_function() ancora, e quando faccio una var_dump di una variabile che è una funzione ::php is_function() per determinare se una variabile è una funzione
$func = function(){
echo 'asdf';
};
var_dump($func);
ottengo questo:
object(Closure)#8 (0) { }
Ogni pensiero su come controllare se questo è una funzione?
is_callable() funzionerà benissimo se si passa a una funzione anonima, un nome di funzione come stringa o un array di callback PHP valido. Se si desidera controllare in modo specifico solo le funzioni anonime, si consiglia qualcosa di simile a quello che ha detto Gumbo: assicurarsi che il parametro sia un oggetto e assicurarsi che si tratti di un'istanza di chiusura. – Lane
Cosa succede se voglio verificare se è un callack o una stringa e fare cose diverse per loro. Non voglio che un valore stringa venga preso per errore come callback. – Gherman
@German Basta controllare prima se is_string ($ func) poi come secondo controllo con is_callable ($ func) – Heroselohim