⊗ppOpIhOI 36 of 107 menu

Operaator instanceof ja pärimine OOP-s PHP-s

Vaatleme pärimise eripärasid operaatori instanceof kasutamisel. Olgu meil vanemklass ja lapsklass:

<?php // Vanemklass: class ParentClass { } // Lapsklass: class ChildClass extends ParentClass { } ?>

Loome lapsklassi objekti:

<?php $obj = new ChildClass; ?>

Kontrollime nüüd instanceof abil, kas meie objekt kuulub klassi ParentClass ja klassi ChildClass:

<?php var_dump($obj instanceof ChildClass); // väljastab true var_dump($obj instanceof ParentClass); // samuti väljastab true ?>

Nagu näitest näete - operaator instanceof ei tee vahet vanem- ja lapsklasside kontrollimisel.

Ärge segadusse sattuge - kui objekt on tegelikult vanemklassi, siis loomulikult tagastab kontroll lapsklassi kuulumise kohta false:

<?php $obj = new ParentClass; // vanemklassi objekt var_dump($obj instanceof ParentClass); // väljastab true var_dump($obj instanceof ChildClass); // väljastab false ?>

Tehke klass User avalike omadustega name ja surname.

Tehke klass Employee, mis pärib klassist User ja lisab omaduse salary.

Tehke klass City avalike omadustega name ja population.

Looge 3 objekti klassi User, 3 objekti klassi Employee, 3 objekti klassi City, ja pane need suvalises järjekorras massiivi $arr.

Käige tsükliga läbi massiivi $arr ja kuvage ekraanile veerg omadustega name nendest objektidest, mis kuuluvad klassi User või selle klassi järglastesse.

Käige tsükliga läbi massiivi $arr ja kuvage ekraanile veerg omadustega name nendest objektidest, mis ei kuulu klassi User ega selle klassi järglastesse.

Käige tsükliga läbi massiivi $arr ja kuvage ekraanile veerg omadustega name nendest objektidest, mis kuuluvad täpselt klassi User, st mitte klassi City ega klassi Employee.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu