⊗ppOpIhOI 36 of 107 menu

Opérateur instanceof et héritage en POO en PHP

Analysons les particularités de l'héritage lors de l'utilisation de l'opérateur instanceof. Supposons que nous ayons une classe parent et une classe enfant :

<?php // Classe parent : class ParentClass { } // Classe enfant : class ChildClass extends ParentClass { } ?>

Créons un objet de la classe enfant :

<?php $obj = new ChildClass; ?>

Vérifions maintenant à l'aide de instanceof si notre objet appartient à la classe ParentClass et à la classe ChildClass :

<?php var_dump($obj instanceof ChildClass); // affichera true var_dump($obj instanceof ParentClass); // affichera également true ?>

Comme vous pouvez le voir dans l'exemple - l'opérateur instanceof ne fait pas de distinction lors de la vérification entre les classes parentes et les classes enfants.

Ne vous trompez pas - si l'objet est réellement de la classe parent, alors, bien sûr, la vérification d'appartenance à la classe enfant retournera false :

<?php $obj = new ParentClass; // objet de la classe parent var_dump($obj instanceof ParentClass); // affichera true var_dump($obj instanceof ChildClass); // affichera false ?>

Créez une classe User avec les propriétés publiques name et surname.

Créez une classe Employee qui héritera de la classe User et ajoutera une propriété salary.

Créez une classe City avec les propriétés publiques name et population.

Créez 3 objets de la classe User, 3 objets de la classe Employee, 3 objets de la classe City, et dans un ordre arbitraire, enregistrez-les dans un tableau $arr.

Parcourez en boucle le tableau $arr et affichez à l'écran la colonne des propriétés name des objets qui appartiennent à la classe User ou à une classe descendante de celle-ci.

Parcourez en boucle le tableau $arr et affichez à l'écran la colonne des propriétés name des objets qui n'appartiennent pas à la classe User ou à une classe descendante de celle-ci.

Parcourez en boucle le tableau $arr et affichez à l'écran la colonne des propriétés name des objets qui appartiennent précisément à la classe User, c'est-à-dire ni à la classe City ni à la classe Employee.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser