⊗ppOpIhOI 36 of 107 menu

Operátor instanceof a dedičstvo v OOP v PHP

Poďme si rozobrať vlastnosti dedičstva pri použití operátora instanceof. Predpokladajme, že máme rodičovskú triedu a dcérsku triedu:

<?php // Rodičovská trieda: class ParentClass { } // Dcérska trieda: class ChildClass extends ParentClass { } ?>

Vytvorme objekt dcérskej triedy:

<?php $obj = new ChildClass; ?>

Skontrolujme teraz pomocou instanceof, či patrí náš objekt do triedy ParentClass a do triedy ChildClass:

<?php var_dump($obj instanceof ChildClass); // vypíše true var_dump($obj instanceof ParentClass); // tiež vypíše true ?>

Ako vidíte z príkladu - operátor instanceof nerobí rozdiel pri kontrole medzi rodičovskými a dcérskymi triedami.

Nezamotajte sa - ak bude objekt naozaj rodičovskej triedy, tak samozrejme kontrola príslušnosti k dcérskej triede vráti false:

<?php $obj = new ParentClass; // objekt rodičovskej triedy var_dump($obj instanceof ParentClass); // vypíše true var_dump($obj instanceof ChildClass); // vypíše false ?>

Vytvorte triedu User s verejnými vlastnosťami name a surname.

Vytvorte triedu Employee, ktorá bude dediť od triedy User a pridáva vlastnosť salary.

Vytvorte triedu City s verejnými vlastnosťami name a population.

Vytvorte 3 objekty triedy User, 3 objekty triedy Employee, 3 objekty triedy City a v ľubovoľnom poradí ich zapíšte do poľa $arr.

Prechádzajte cyklom pole $arr a vypíšte na obrazovku stĺpec vlastností name tých objektov, ktoré patria do triedy User alebo sú potomkom tejto triedy.

Prechádzajte cyklom pole $arr a vypíšte na obrazovku stĺpec vlastností name tých objektov, ktoré nepatria do triedy User alebo potomkovi tejto triedy.

Prechádzajte cyklom pole $arr a vypíšte na obrazovku stĺpec vlastností name tých objektov, ktoré patria presne do triedy User, teda nie do triedy City a nie do triedy Employee.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť