Home > Article > Backend Development > What is the difference between is_a() function and instanceof in PHP?
The functions of the is_a() function and instanceof operator in PHP are similar, so what are the differences between them? The following article will give you a brief understanding of the is_a() function and instanceof, and introduce the difference between the is_a() function and instanceof. I hope it will be helpful to you. [Video tutorial recommendation: PHP tutorial]
##PHP is_a() function
is_a() function is a built-in function in PHP that checks whether a given object belongs to a given class; it also checks whether the given class is one of the parent classes of the given object.Basic syntax:
is_a( $object, $class_name, $allow_string )
Parameters: is_a() function can accept the following three parameters
●Object: Use to save the test object. ●Class_name: used to save the class name. ● Allow_string: If the set value is False, string class names are not allowed to be used as objects.Return value: If the object belongs to the given class, or this class is one of its parent classes, the is_a() function returns True, otherwise it returns a False value.
Let’s learn about the is_a() function through code examples.<?php class hello { var $store = 'Hello PHP!'; } $PHP= new hello(); // 检查$PHP是否是hello类的对象 if (is_a($PHP, 'hello')) { echo "Yes"; } ?>Output:
Yes
PHP instanceof operator
Use instanceof operator in PHP to find out whether an object Is an instantiated instance of a class.Basic syntax:
$a instanceof MyClass
Operands: The instanceof operator contains the following two operands
● $a: represents the object. ● MyClass: Indicates a class name. Return value: If the object belongs to the given class, or this class is one of its parent classes, it returns True, otherwise it returns a False value. Let’s learn about the instanceof operator through code examples.<?php class hello { var $store = 'Hello PHP!'; } $PHP= new hello(); // 检查$PHP是否是hello类的对象 if ($PHP instanceof hello) { echo "Yes"; } ?>Output:
Yes
The difference between is_a() function and instanceof operator
● is_a() is a function, and instanceof is a language structure. The is_a() function will be significantly slower since it has all the overhead of performing a function call. ●In the case of function callbacks (such as array_map), because instanceof is not a function, it is a language construct, so it cannot be used as a callback. However, callbacks can be used in the is_a() function. ●The usage time of the direct class name in InstanceOf is shorter than that of the is_a() function. Example://语法短(比较) $a instanceof MyClass is_a( $a, MyClass::class )●is_a() is a function that takes an object as parameter 1 and a string as parameter 2, while instanceof takes an object as parameter 1 and can Pass a class name, object instance, or class identifier (class name without quotes) as argument 2.
Example of is_a():
//只有这样才能调用它 is_a($object,$string);
instanceof example:
//对象实例 $object instanceof $otherObject; //字符串类名 $object instanceof $string; //类的标识符 $object instanceof ClassName;The above is the entire content of this article, I hope it will be helpful to everyone's study. For more exciting content, you can pay attention to the relevant tutorial columns of the PHP Chinese website! ! !
The above is the detailed content of What is the difference between is_a() function and instanceof in PHP?. For more information, please follow other related articles on the PHP Chinese website!