The is_a() is a built-in function in PHP which is used to check whether a given object is of a given class or not. It also checks if the given class is one of the parents of the given object or not.
bool is_a( $object, $class_name, $allow_string )
Parameters: This function accepts three parameters as mentioned above and described below:
- object: This parameter is used to hold the tested object.
- class_name: This parameter is used to hold the class name.
- allow_string: If this parameter set to False, string class name as object is not allowed.
Return Value : This function returns True if the object is of this class or has this class as one of its parents else it will return a False value.
Below programs illustrate the is_a() function:
The instanceof operator is used in PHP to find out if an object is an instantiated instance of a class.
$a instanceof MyClass
Operands: This operator contains two operands which are listed below:
- $a: This is used as an object.
- MyClass: It is a class name.
Return Value: It returns True if the object is of this class or has this class as one of its parents else it will return a False value.
Below programs illustrate the instanceof operator in PHP:
Difference between is_a() function and instanceof operator:
- The is_a() is a function, whereas instanceof is a language construct. The is_a() function will be significantly slower since it has all the overhead of executing a function call.
- In case of callback in functions (like array_map) instanceof is not a function, it is a language construct, so it cannot use as callback. On the other hand callback can be used in is_a() function.
- The use of direct class name with instanceof is shorter than is_a() function.
// Short syntax (comparatively) $a instanceof MyClass is_a( $a, MyClass::class )
- The is_a() being a function takes an object as parameter one, and a string as parameter two, whereas instanceof takes an object as parameter one, and can take a class name, object instance, or class identifier (class name written without quotes) as parameter two.
Example of is_a():
// Only way to call it is_a( $object, $string );
Example of instanceof:
// Object instance $object instanceof $otherObject; // String class name $object instanceof $string; // Identifier for the class $object instanceof ClassName;
- Difference between isset() and array_key_exists() Function in PHP
- What is the difference between a language construct and a “built-in” function in PHP ?
- Difference and Similarities between PHP and C
- Difference between try-catch and if-else statements in PHP
- Difference between bindParam and bindValue in PHP
- What is the difference between the | and || or operator in php?
- What is the difference between public, private, and protected in PHP?
- Difference between require-dev and require in PHP?
- What is the difference between HTTP_HOST and SERVER_NAME in PHP?
- What is the difference between echo, print, and print_r in PHP?
- What is the difference between array_merge and array + array in PHP?
- Difference between “!==” and “==!” in PHP
- Difference between array() and  in PHP
- What is the difference between single-quoted and double-quoted strings in PHP?
- Difference between break and continue in PHP
- What is the difference between Perl and PHP ?
- Difference Between JSP and PHP
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.