php is_function () um festzustellen, ob eine Variable eine Funktion ist
War ich ziemlich aufgeregt, um zu Lesen über anonyme Funktionen in php, mit denen Sie eine variable deklarieren, die Funktion einfacher, als Sie tun könnten, mit create_function. Nun Frage ich mich, wenn ich eine Funktion übergeben wird, eine variable, wie kann ich es überprüfen, um zu bestimmen, wenn es eine Funktion? Es gibt keine is_function () - Funktion noch, und wenn ich einen var_dump von der variable, eine Funktion::
$func = function(){
echo 'asdf';
};
var_dump($func);
Bekomme ich diese:
object(Closure)#8 (0) { }
Irgendwelche Gedanken auf, wie um zu prüfen, ob diese eine Funktion?
InformationsquelleAutor der Frage Jage | 2010-05-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
is_callable
um zu bestimmen, ob eine gegebene variable ist eine Funktion. Zum Beispiel:InformationsquelleAutor der Antwort Jon Benedicto
Können Sie
function_exists
zu überprüfen gibt es eine Funktion mit dem angegebenen Namen. Und zu kombinieren, dass mit anonymen Funktionen, versuchen Sie dies:InformationsquelleAutor der Antwort Gumbo
Wenn Sie nur wollen, um zu überprüfen, ob eine variable ist eine anonyme Funktion, und nicht ein callable string oder array verwenden Sie
instanceof
.Anonyme Funktionen (von der Art, wurden Hinzugefügt in PHP 5.3), sind immer Instanzen des
Closure
Klasse, und jede Instanz desClosure
Klasse ist eine anonyme Funktion.Es ist eine andere Art der Sache in PHP, könnte wohl als eine Funktion, und dass die Objekte, die Umsetzung der
__invoke
magic-Methode. Wenn Sie möchten, um diese (zwar noch ohne strings und arrays) verwendenmethod_exists($func, '__invoke')
. Das wird noch gehören Schließungen, da die Verschlüsse implementieren__invoke
für Konsistenz.InformationsquelleAutor der Antwort Brilliand
InformationsquelleAutor der Antwort Artemiy StagnantIce Alexeew