⊗ppOpIhOI 36 of 107 menu

Operatorul instanceof și moștenirea în OOP în PHP

Să analizăm particularitățile moștenirii atunci când utilizăm operatorul instanceof. Să presupunem că avem o clasă părinte și o clasă copil:

<?php // Clasa părinte: class ParentClass { } // Clasa copil: class ChildClass extends ParentClass { } ?>

Să creăm un obiect al clasei copil:

<?php $obj = new ChildClass; ?>

Să verificăm acum cu ajutorul instanceof, dacă obiectul nostru aparține clasei ParentClass și clasei ChildClass:

<?php var_dump($obj instanceof ChildClass); // va afișa true var_dump($obj instanceof ParentClass); // va afișa de asemenea true ?>

După cum vedeți din exemplu - operatorul instanceof nu face distincție la verificare între clasele părinte și clasele copil.

Nu vă încurcați - dacă obiectul va fi într-adevăr al clasei părinte atunci, desigur, verificarea aparținerii la clasa copil va returna false:

<?php $obj = new ParentClass; // obiect al clasei părinte var_dump($obj instanceof ParentClass); // va afișa true var_dump($obj instanceof ChildClass); // va afișa false ?>

Creați o clasă User cu proprietăți publice name și surname.

Creați o clasă Employee, care va moșteni din clasa User și va adăuga proprietatea salary.

Creați o clasă City cu proprietăți publice name și population.

Creați 3 obiecte ale clasei User, 3 obiecte ale clasei Employee, 3 obiecte ale clasei City, și în ordine arbitrară scrieți-le în array-ul $arr.

Parcurgeți cu bucla array-ul $arr și afișați pe ecran coloana proprietăților name ale acelor obiecte care aparțin clasei User sau descendenților acestei clase.

Parcurgeți cu bucla array-ul $arr și afișați pe ecran coloana proprietăților name ale acelor obiecte care nu aparțin clasei User sau descendenților acestei clase.

Parcurgeți cu bucla array-ul $arr și afișați pe ecran coloana proprietăților name ale acelor obiecte care aparțin exact clasei User, adică nu clasei City și nu clasei Employee.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge