Les fonctions de la fonction is_a() et de l'opérateur instanceof en PHP sont similaires, alors quelles sont les différences entre elles ? L'article suivant vous donnera une brève compréhension de la fonction is_a() et de l'instanceof, et présentera la différence entre la fonction is_a() et l'instanceof. J'espère qu'il vous sera utile. [Recommandation du didacticiel vidéo : Tutoriel PHP]
Fonction PHP is_a()
La fonction is_a() est une fonction intégrée à PHP qui vérifie si un objet donné appartient à une classe donnée ; elle vérifie également si la classe donnée est l'une des classes parentes de l'objet donné.
Syntaxe de base :
is_a( $object, $class_name, $allow_string )
Paramètres : La fonction is_a() peut accepter les trois paramètres suivants
QuantityObject : Utilisé pour enregistrer les objets de test.
● class_name : utilisé pour enregistrer le nom de la classe.
●allow_string : Si la valeur définie est False, les noms de classes de chaînes ne peuvent pas être utilisés comme objets.
Valeur de retour : Si l'objet appartient à la classe donnée, ou si cette classe est l'une de ses classes parentes, la fonction is_a() renvoie True, sinon elle renvoie une valeur False.
Apprenons la fonction is_a() à travers des exemples de code.
<?php class hello { var $store = 'Hello PHP!'; } $PHP= new hello(); // 检查$PHP是否是hello类的对象 if (is_a($PHP, 'hello')) { echo "Yes"; } ?>
Sortie :
Yes
Instance d'opérateur PHP
Utilisez l'instance d'opérateur en PHP pour savoir si l'objet est une instance instanciée de la classe.
Syntaxe de base :
$a instanceof MyClass
Opérandes : L'opérateur instanceof contient les deux opérandes suivants
Quantity $ a : Indique l'objet.
● MyClass : Indique un nom de classe.
Valeur de retour : True si l'objet appartient à la classe donnée, ou a cette classe comme l'une de ses classes parentes, sinon il renvoie une valeur False.
Apprenons l'opérateur instanceof à travers des exemples de code.
<?php class hello { var $store = 'Hello PHP!'; } $PHP= new hello(); // 检查$PHP是否是hello类的对象 if ($PHP instanceof hello) { echo "Yes"; } ?>
Sortie :
Yes
Différence entre la fonction is_a() et l'opérateur instanceof
● is_a( ) est une fonction et instanceof est une structure de langage. La fonction is_a() sera nettement plus lente car elle aura toute la surcharge nécessaire à l'exécution d'un appel de fonction.
●Dans le cas des rappels de fonctions (tels que array_map), comme instanceof n'est pas une fonction, c'est une construction de langage, elle ne peut donc pas être utilisée comme rappel. Cependant, les rappels peuvent être utilisés dans la fonction is_a().
●Le temps d'utilisation du nom de classe direct dans InstanceOf est plus court que celui de la fonction is_a().
Exemple :
//语法短(比较) $a instanceof MyClass is_a( $a, MyClass::class )
● is_a() est une fonction qui prend un objet comme paramètre 1 et une chaîne comme paramètre 2, tandis que instanceof prend un objet comme paramètre 1, et vous pouvez transmettez un nom de classe, une instance d'objet ou un identifiant de classe (nom de classe sans guillemets) comme paramètre 2.
Exemple de is_a() :
//只有这样才能调用它 is_a($object,$string);
instanceof example :
//对象实例 $object instanceof $otherObject; //字符串类名 $object instanceof $string; //类的标识符 $object instanceof ClassName;
C'est tout pour cet article J'espère que l'ensemble du contenu sera utile à l'étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!