Heim > Backend-Entwicklung > PHP-Tutorial > Was ist der Unterschied zwischen der Funktion is_a() und der Instanz von in PHP?

Was ist der Unterschied zwischen der Funktion is_a() und der Instanz von in PHP?

青灯夜游
Freigeben: 2023-04-05 14:08:01
Original
3438 Leute haben es durchsucht

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 )
Nach dem Login kopieren

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 = &#39;Hello PHP!&#39;;  
}  
    
$PHP= new hello();  
    
// 检查$PHP是否是hello类的对象
if (is_a($PHP, &#39;hello&#39;)) {  
    echo "Yes";  
}  
    
?>
Nach dem Login kopieren

Ausgabe:

Yes
Nach dem Login kopieren
Nach dem Login kopieren

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
Nach dem Login kopieren

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 = &#39;Hello PHP!&#39;;  
}  
    
$PHP= new hello();  
    
// 检查$PHP是否是hello类的对象
if ($PHP instanceof hello) {  
    echo "Yes";  
}  
?>
Nach dem Login kopieren

Ausgabe:

Yes
Nach dem Login kopieren
Nach dem Login kopieren

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 )
Nach dem Login kopieren

●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);
Nach dem Login kopieren

instanceof example:

//对象实例      
$object instanceof $otherObject; 
//字符串类名
$object instanceof $string;
//类的标识符
$object instanceof ClassName;
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage