Heim  >  Artikel  >  php教程  >  Analysieren Sie den Unterschied zwischen der PHP-Funktion method_exists() und is_callable()

Analysieren Sie den Unterschied zwischen der PHP-Funktion method_exists() und is_callable()

高洛峰
高洛峰Original
2016-12-22 15:42:241057Durchsuche

Was ist der Unterschied zwischen der PHP-Funktion method_exists() und is_callable()? Im objektorientierten PHP-Entwurfsprozess müssen wir beim Aufrufen einer Methode häufig beurteilen, ob sie zu einer bestimmten Klasse gehört. Zu den häufig verwendeten Methoden gehören method_exists () und is_callable (). advanced. Einige, die den Methodennamen in Form einer String-Variablen als erstes Argument akzeptieren, geben true zurück, wenn die Klassenmethode existiert und aufgerufen werden kann. Wenn Sie prüfen möchten, ob eine Methode in einer Klasse aufgerufen werden kann, können Sie der Funktion anstelle des Methodennamens der Klasse ein Array als Parameter übergeben. Das Array muss als erstes Element den Objekt- oder Klassennamen und als zweites Element den zu prüfenden Methodennamen enthalten. Wenn die Methode in der Klasse vorhanden ist, gibt die Funktion true zurück.
Codebeispiel:

if ( is_callable( array( $obj, $method ) ) ) 
{ 
/*要操作的代码段*/
}

is_callable() kann einen weiteren Parameter hinzufügen: einen booleschen Wert. Wenn dieser Parameter auf true gesetzt ist, prüft die Funktion nur, ob die Syntax der angegebenen Methode oder des Funktionsnamens stimmt korrekt, ohne zu prüfen, ob es tatsächlich existiert. Die Parameter der Funktion method_exists() sind ein Objekt (oder Klassenname) und ein Methodenname. Wenn die angegebene Methode in der Klasse des Objekts vorhanden ist, gibt sie true zurück
Codebeispiel:

if ( method_exists( $obj, $method ) ) 
{ 
/*要操作的代码段*/
}

php Funktion Der Unterschied zwischen method_exists() und is_callable() besteht darin, dass in PHP5 die Existenz einer Methode nicht bedeutet, dass sie aufgerufen werden kann. Für Methoden privater, geschützter und öffentlicher Typen gibt method_exits() „true“ zurück, aber is_callable() prüft, ob sie existiert und auf sie zugegriffen werden kann. Wenn sie vom privaten, geschützten Typ ist, gibt sie „false“ zurück.


Weitere Artikel zum Unterschied zwischen den PHP-Funktionen method_exists() und is_callable() finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn