is_a() Versus Instanceof¶
<?php
class A {}
var_dump(new a instanceof A);
// true
var_dump(new a instanceof A::class);
// Fatal error
var_dump(is_a(new a, A::class));
// true
var_dump(is_a(new a, A);
// Undefined constant A
is_a() and instanceof are the same feature: check if an object is of a specific class. Yet, they do things in different ways.
Using the ::class operator is safe in both cases.
Using a name is a class name for instanceof, while it is a constant name with is_a(). This may lead to confusion.
See Also¶
PHP Features¶
Last updated: 14 July 2026