⊗ppOpIhOI 36 of 107 menu

Operatoren instanceof og arv i OOP i PHP

Lad os se på egenskaberne ved arv, når vi bruger operatoren instanceof. Antag, at vi har en forældreklasse og en underklasse:

<?php // Forældreklassen: class ParentClass { } // Underklassen: class ChildClass extends ParentClass { } ?>

Lad os oprette et objekt af underklassen:

<?php $obj = new ChildClass; ?>

Lad os nu med instanceof kontrollere, om vores objekt tilhører klassen ParentClass og klassen ChildClass:

<?php var_dump($obj instanceof ChildClass); // vil udskrive true var_dump($obj instanceof ParentClass); // vil også udskrive true ?>

Som du kan se af eksemplet - operatoren instanceof skelner ikke ved kontrol mellem forældreklasser og underklasser.

Vær ikke forvirret - hvis objektet virkelig er af forældreklassen, så vil kontrollen for tilhørsforhold til underklassen selvfølgelig returnere false:

<?php $obj = new ParentClass; // objekt af forældreklassen var_dump($obj instanceof ParentClass); // vil udskrive true var_dump($obj instanceof ChildClass); // vil udskrive false ?>

Opret klassen User med de offentlige egenskaber name og surname.

Opret klassen Employee, som vil arve fra klassen User og tilføje egenskaben salary.

Opret klassen City med de offentlige egenskaber name og population.

Opret 3 objekter af klassen User, 3 objekter af klassen Employee, 3 objekter af klassen City, og skriv dem i vilkårlig rækkefølge i arrayet $arr.

Gennemgå arrayet $arr med en løkke og udskriv på skærmen en kolonne med egenskaben name for de objekter, der tilhører klassen User eller en underklasse af denne klasse.

Gennemgå arrayet $arr med en løkke og udskriv på skærmen en kolonne med egenskaben name for de objekter, der *ikke* tilhører klassen User eller en underklasse af denne klasse.

Gennemgå arrayet $arr med en løkke og udskriv på skærmen en kolonne med egenskaben name for de objekter, der tilhører netop klassen User, det vil sige ikke klassen City og ikke klassen Employee.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis