Les opérateurs de types
Les opérateurs de types sont utilisés pour déterminer si une variable est un objet instancié d’une certaine classe. Pour réaliser cela on utilise instanceof.
Exemple 1. instanceof avec des classes :
<?php
class MaClasse
{
}
class CeciNestPasMaClasse
{
}
$a = new MaClasse;
var_dump($a instanceof MaClasse);
var_dump($a instanceof CeciNestPassMaClasse);
?>
Dans cet exemple, le premier var_dump() renvoi vrai (true) alors que le second var_dump() renvoi faux (false).
Exemple 2. instanceof avec des classes héritées :
<?php
class ClassParent
{
}
class MaClass extends ParentClass
{
}
$a = new MaClass;
var_dump($a instanceof MaClass);
var_dump($a instanceof ClassParent);
?>
Dans cet exemple, le premier var_dump() renvoi vrai (true) et le second var_dump() renvoi vrai (true) aussi.
Exemple 3. instanceof pour vérifier que l’objet n’est pas une instance de la classe :
<?php
class MaClass
{
}
$a = new MaClass;
var_dump(!($a instanceof stdClass));
?>
Dans cet exemple, le var_dump() renvoi vrai (true).
Exemple 4. instanceof pour une interface :
<?php
interface MonInterface
{
}
class MaClass implements MonInterface
{
}
$a = new MaClass;
var_dump($a instanceof MaClass);
var_dump($a instanceof MonInterface);
?>
Dans cet exemple, les deux var_dump() renvoient vrai (true).
Exemple 5 : instanceof pour d’autres types :
<?php
$a = 1;
$b = NULL;
var_dump($a instanceof stdClass);
var_dump($b instanceof stdClass);
var_dump(FALSE instanceof stdClass);
?>
L’exemple du dessus donne le résultat suivant :
bool(false)
bool(false)
bool(false)
PHP Fatal error:  instanceof expects an object instance, constant given
                        Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !