Heim  >  Artikel  >  Backend-Entwicklung  >  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?

青灯夜游
青灯夜游Original
2019-03-06 10:06:523381Durchsuche

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

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