instanceof is used to determine whether a PHP variable is an instantiated object of a certain class:

Example #1 Using instanceof with classes

<?php
class MyClass
{
}

class NotMyClass
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>

The above example will output:

bool(true)
bool(false)

instanceof can also be used to determine whether a variable is an instantiated object of a class that inherits from a parent class:

Example #2 Using instanceof with inherited classes

<?php
class ParentClass
{
}

class MyClass extends ParentClass
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof ParentClass);
?>

The above example will output:

bool(true)
bool(true)

To check if an object is not an instanceof a class, the logical not operator can be used.

Example #3 Using instanceof to check if object is not an instanceof a class

<?php
class MyClass
{
}

$a = new MyClass;
var_dump(!($a instanceof stdClass));
?>

The above example will output:

bool(true)

Lastly, instanceof can also be used to determine whether a variable is an instantiated object of a class that implements an interface:

Example #4 Using instanceof for class

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof MyInterface);
?>

The above example will output:

bool(true)
bool(true)

Although instanceof is usually used with a literal classname, it can also be used with another object or a string variable:

Example #5 Using instanceof with other variables

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;
$b = new MyClass;
$c = 'MyClass';
$d = 'NotMyClass';

var_dump($a instanceof $b); // $b is an object of class MyClass
var_dump($a instanceof $c); // $c is a string 'MyClass'
var_dump($a instanceof $d); // $d is a string 'NotMyClass'
?>

The above example will output:

bool(true)
bool(true)
bool(false)

There are a few pitfalls to be aware of. Before PHP version 5.1.0, instanceof would call __autoload() if the class name did not exist. In addition, if the class was not loaded, a fatal error would occur. This can be worked around by using a dynamic class reference, or a string variable containing the class name:

Example #6 Avoiding classname lookups and fatal errors with instanceof in PHP 5.0

<?php
$d = 'NotMyClass';
var_dump($a instanceof $d); // no fatal error here
?>

The above example will output:

bool(false)
declare The declare construct is used to set execution directives for a block of code. The syntax of declare is similar to the syntax of other flow control ...
Firefox 21, mejoras en rendimiento.. El navegador de código abierto de la Fundación Mozilla acaba de lanzar la versión 21 de Firefox lo que le consolida como uno de los productos con un p...
Teclado QWERTY, curiosidades Son muchos los terminales que llevan consigo un teclado QWERTY. De hecho, los teléfonos móviles inteligentes ya han dejado atrás los teclados alfanu...
Seagate lanza los primeros discos duros de 8 Terabytes Curiosamente, para presentar un disco duro, el vicepresidente de marketing de Seagate, Scott Horn, ha hablado de la “movilización” del mundo. De c...
Código PHP para Construir Formularios Esta clase se puede utilizar para componer y salida de los formularios HTML. Puede generar tipos diferentes de formularios HTML de formularios de e...
WhatsApp para iPhone tiene opción para llamadas WhatsApp acaba de recibir una nueva actualización para iPhone, la nueva versión de la app tiene un botón que aparece junto a la foto de perfil y el no...
HTML y CSS Originalmente, las páginas HTML sólo incluían información sobre sus contenidos de texto e imagenes. Con el desarrollo del estándar HTML, las páginas ...
#Windows10 será gratis para usuarios de windows 7 y 8, lee aquí porque El gigante estadounidense del software Microsoft anunció hoy que su nueva versión del sistema operativo Windows, Windows 10, será gratuita para los ...
Shipping Per Item in Opencart This module allows you to set a shipping price per item. Features: This shipping method works with geozones Set a minimum and maximum car...
Auto CMS Desarrolle la clase Auto CMS pensando en crear un apoyo a quienes desean tener presencia en internet sin problemas, de manera rápida, sencilla, y con ...
Type Operators
Tagged on: