Heim > Artikel > Backend-Entwicklung > Hinweis 013 Der Unterschied zwischen der Funktion is_callable() und method_exists() in PHP
Die Rolle von is_callable()
Ich bin kürzlich mit der Methode is_callable() in Kontakt gekommen. In der Vergangenheit habe ich die Methode method_exissts() verwendet, um die entsprechende Logikverarbeitung durchzuführen Als ich heute mit der Methode is_callable() in Kontakt kam, stellte ich fest, dass die beiden große Ähnlichkeiten aufweisen. Die Syntaxstruktur der Methode
is_callable() lautet:
bool is_callable ( callable $name [, bool $syntax_only = false [, string &$callable_name ]] )
Funktion Es soll überprüft werden, ob der Inhalt der Variablen als Funktion aufgerufen werden kann. Der Name des Parameters 1 ist der Name der Rückruffunktion, die überprüft werden muss. Wenn es sich um eine Objektmethode handelt, ist ein Array als Parameter 1 erforderlich. Der Parameter sollte zu diesem Zeitpunkt die folgende Struktur haben:
array ( Klasseninstanz, Methodenname)
Parameter 2 syntax_only ist ein boolescher Wert. Wenn dieser Wert auf „true“ gesetzt ist, überprüft diese Funktion nur, ob „name“ die Syntax einer Funktion oder Methode ist, und erkennt nicht, ob die Funktion tatsächlich existiert.
Parameter 3 callable_name wird verwendet, um den „aufrufbaren Namen“ zu erhalten. Gewöhnliche Funktionen geben den Funktionsnamen zurück und Methoden in der Klasse geben Zeichenfolgen in der Form zurück: someClass::someMethod.
Der Unterschied zwischen is_callable() und method_exists()
method_exists() Die Parameter der Funktion sind ein Objekt (oder Klassenname) und ein Methodenname, wenn die angegebene Methode im existiert Die Klasse des Objekts gibt dann „true“ zurück.
Der Unterschied zwischen den beiden ist:
In PHP5 bedeutet die Existenz einer Methode nicht, dass sie aufgerufen werden kann. Bei Methoden privater, geschützter und öffentlicher Typen gibt method_exits() true zurück, is_callable() prüft jedoch, ob sie vorhanden sind und ob darauf zugegriffen werden kann. Wenn es sich um private, geschützte Methoden handelt, wird false zurückgegeben.
Das Obige ist der Inhalt von Hinweis 013 zum Unterschied zwischen is_callable() und method_exists() in PHP. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!