Maison > développement back-end > Problème PHP > instance php de qu'est-ce que cela signifie ?

instance php de qu'est-ce que cela signifie ?

藏色散人
Libérer: 2023-03-09 17:18:02
original
5301 Les gens l'ont consulté

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.

instance php de qu'est-ce que cela signifie ?

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";
Copier après la connexion

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 &#39;$m是类test的实例!<br />&#39;; // get this value
switch ($a instanceof test){
  case true :
    echo &#39;YES<br />&#39;;
    break;
  case false :
    echo &#39;No<br />&#39;; //get this value
    break;
}
$d=new testChilern();
if($d instanceof test)echo &#39;$d是类test的子类!<br />&#39;; // get this value
Copier après la connexion

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 &#39;A&#39;;
}
Copier après la connexion

La deuxième utilisation :

<?php
interface ExampleInterface
{
   public function interfaceMethod();
 }
 class ExampleClass implements ExampleInterface
{
   public function interfaceMethod()
   {
     return &#39;Hello World!&#39;;
   }
 }
$exampleInstance = new ExampleClass();
 if($exampleInstance instanceof ExampleInterface){
   echo &#39;Yes, it is&#39;;
 }else{
   echo &#39;No, it is not&#39;;
} 
?>
Copier après la connexion

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 = &#39;Foo&#39;;
   public function test() {
     echo $this->foobar . "\n";
   }
 }
 class Bar extends Foo {
   public $foobar = &#39;Bar&#39;;
 }
$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, &#39;Foo&#39;)); // FALSE
var_dump(is_subclass_of($b, &#39;Foo&#39;)); // TRUE
echo "subclass of Bar\n";
var_dump(is_subclass_of($a, &#39;Bar&#39;)); // FALSE
var_dump(is_subclass_of($b, &#39;Bar&#39;)); // FALSE
?>
Copier après la connexion

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)
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal