Heim > Artikel > Backend-Entwicklung > Was ist der Unterschied zwischen der Funktion is_a() und der Instanz von in PHP?
Die Funktionen der Funktion „is_a()“ und des Operators „instanceof“ in PHP sind ähnlich. Was sind also die Unterschiede zwischen ihnen? Der folgende Artikel gibt Ihnen einen kurzen Überblick über die Funktion is_a() und die Instanz von und stellt den Unterschied zwischen der Funktion is_a() und der Instanz von vor. [Video-Tutorial-Empfehlung: PHP-Tutorial]
PHP is_a() function
Die Funktion is_a() ist eine in PHP integrierte Funktion, die prüft, ob ein bestimmtes Objekt zu einer bestimmten Klasse gehört. Außerdem prüft sie, ob die angegebene Klasse eine der übergeordneten Klassen des angegebenen Objekts ist.
Grundlegende Syntax:
is_a( $object, $class_name, $allow_string )
Parameter: is_a()-Funktion kann die folgenden drei Parameter akzeptieren
●Objekt: Verwendung um das Testobjekt zu speichern.
● Klassenname: Wird zum Speichern des Klassennamens verwendet.
●allow_string: Wenn der eingestellte Wert False ist, dürfen String-Klassennamen nicht als Objekte verwendet werden.
Rückgabewert: Wenn das Objekt zur angegebenen Klasse gehört oder diese Klasse eine ihrer übergeordneten Klassen ist, gibt die Funktion is_a() True zurück, andernfalls gibt sie einen False-Wert zurück.
Lassen Sie uns anhand von Codebeispielen etwas über die Funktion is_a() lernen.
<?php class hello { var $store = 'Hello PHP!'; } $PHP= new hello(); // 检查$PHP是否是hello类的对象 if (is_a($PHP, 'hello')) { echo "Yes"; } ?>
Ausgabe:
Yes
PHP-Instanz des Operators
Verwenden Sie den Instanzoperator in PHP, um herauszufinden, ob ein Objekt ein Objekt ist instanziierte Instanz einer Klasse.
Grundlegende Syntax:
$a instanceof MyClass
Operanden: Der Instanzoperator enthält die folgenden zwei Operanden
● $a: repräsentiert die Objekt.
● MyClass: Gibt einen Klassennamen an.
Rückgabewert: True, wenn das Objekt zur angegebenen Klasse gehört oder diese Klasse als eine seiner übergeordneten Klassen hat, andernfalls gibt es einen False-Wert zurück.
Lassen Sie uns anhand von Codebeispielen etwas über den Instanzoperator lernen.
<?php class hello { var $store = 'Hello PHP!'; } $PHP= new hello(); // 检查$PHP是否是hello类的对象 if ($PHP instanceof hello) { echo "Yes"; } ?>
Ausgabe:
Yes
Der Unterschied zwischen der Funktion is_a() und dem Instanzoperator
● is_a() ist a Funktion und Instanz von ist eine Sprachstruktur. Die Funktion is_a() wird deutlich langsamer sein, da sie den gesamten Aufwand für die Ausführung eines Funktionsaufrufs hat.
●Bei Funktionsrückrufen (z. B. array_map) handelt es sich bei „instanceof“ um keine Funktion, sondern um ein Sprachkonstrukt, sodass es nicht als Rückruf verwendet werden kann. Allerdings können Rückrufe in der Funktion is_a() verwendet werden.
●Die Verwendungszeit des direkten Klassennamens in InstanceOf ist kürzer als die der Funktion is_a().
Beispiel:
//语法短(比较) $a instanceof MyClass is_a( $a, MyClass::class )
●is_a() ist eine Funktion, die ein Objekt als Parameter 1 und eine Zeichenfolge als Parameter 2 akzeptiert, während „instanceof“ ein Objekt als Parameter 1 akzeptiert und eine Klasse annehmen kann Name, Objektinstanz oder Klassenbezeichner (Klassenname ohne Anführungszeichen) als Argument 2.
Beispiel für is_a():
//只有这样才能调用它 is_a($object,$string);
instanceof example:
//对象实例 $object instanceof $otherObject; //字符串类名 $object instanceof $string; //类的标识符 $object instanceof ClassName;
Das Obige ist der gesamte Inhalt dieses Artikels Ich hoffe, dass es für das Studium aller hilfreich sein wird. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen der Funktion is_a() und der Instanz von in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!