php instanceof est un mot-clé en php. L'utilisation du mot-clé instanceof peut déterminer si un objet est une instance d'une classe, une sous-classe d'une classe ou implémente une interface spécifique et effectuer les opérations correspondantes.
L'environnement d'exploitation de cet article : système Windows 7, PHP version 5.6, ordinateur Dell G3.
Un autre nouvel ajout à PHP5 est le mot-clé instdnceof. Utilisez ce mot-clé pour déterminer si un objet est une instance d'une classe, une sous-classe d'une classe ou implémente une interface spécifique et effectuez les opérations correspondantes. Dans certains cas, nous souhaitons déterminer si une classe est d'un type spécifique ou implémente une interface spécifique. L'opérateur instanceof est très adapté à cette tâche. L'opérateur instanceof vérifie trois choses : si l'instance est d'un type spécifique, si l'instance hérite d'un type spécifique et si l'instance ou l'une de ses classes ancêtres implémente une interface spécifique. Par exemple, supposons que vous vouliez savoir si un objet nommé manager est une instance de la classe Employee :
$manager = new Employee(); … if ($manager instanceof Employee) echo "Yes";
Deux points méritent d'être notés. Premièrement, le nom de la classe ne comporte aucun délimiteur (guillemets). L'utilisation de délimiteurs entraînera une erreur de syntaxe. Deuxièmement, si la comparaison échoue, le script quittera son exécution. Le mot-clé instanceof est particulièrement utile lorsque vous travaillez avec plusieurs objets en même temps. Par exemple, vous pouvez appeler une fonction à plusieurs reprises mais souhaitez ajuster le comportement de la fonction en fonction du type d'objet. Vous pouvez utiliser des instructions case et le mot-clé instanceof pour atteindre cet objectif.
class test{} class test{} class testChilern Extends test{} $a = new test(); $m = new test(); $i = ($m instanceof test); if($i) echo '$m是类test的实例!<br />'; // get this value switch ($a instanceof test){ case true : echo 'YES<br />'; break; case false : echo 'No<br />'; //get this value break; } $d=new testChilern(); if($d instanceof test)echo '$d是类test的子类!<br />'; // get this value
Quelle est la fonction d'instanceof en php ?
Fonction : (1) Déterminer si un objet est une instance d'une certaine classe , (2) Déterminer si un objet implémente une interface.
La première utilisation :
<?php $obj = new A(); if ($obj instanceof A) { echo 'A'; }
La deuxième utilisation :
<?php interface ExampleInterface { public function interfaceMethod(); } class ExampleClass implements ExampleInterface { public function interfaceMethod() { return 'Hello World!'; } } $exampleInstance = new ExampleClass(); if($exampleInstance instanceof ExampleInterface){ echo 'Yes, it is'; }else{ echo 'No, it is not'; } ?>
Résultat de sortie : Oui, c'est
De plus, veuillez faire attention à la différence entre instanceof et is_subclass_of(), veuillez consulter le code :
<?php class Foo { public $foobar = 'Foo'; public function test() { echo $this->foobar . "\n"; } } class Bar extends Foo { public $foobar = 'Bar'; } $a = new Foo(); $b = new Bar(); echo "use of test() method\n"; $a->test(); $b->test(); echo "instanceof Foo\n"; var_dump($a instanceof Foo); // TRUE var_dump($b instanceof Foo); // TRUE echo "instanceof Bar\n"; var_dump($a instanceof Bar); // FALSE var_dump($b instanceof Bar); // TRUE echo "subclass of Foo\n"; var_dump(is_subclass_of($a, 'Foo')); // FALSE var_dump(is_subclass_of($b, 'Foo')); // TRUE echo "subclass of Bar\n"; var_dump(is_subclass_of($a, 'Bar')); // FALSE var_dump(is_subclass_of($b, 'Bar')); // FALSE ?>
Résultat de sortie (PHP 5.4.4) :
use of test() method Foo Bar instanceof Foo bool(true) bool(true) instanceof Bar bool(false) bool(true) subclass of Foo bool(false) bool(true) subclass of Bar bool(false)
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!