⊗ppOpIhOI 36 of 107 menu

Operator instanceof in dedovanje v OOP v PHP

Oglejmo si posebnosti dedovanja pri uporabi operatorja instanceof. Recimo, da imamo nadrejeni razred in podrejeni razred:

<?php // Nadrejeni razred: class ParentClass { } // Podrejeni razred: class ChildClass extends ParentClass { } ?>

Ustvarimo objekt podrejenega razreda:

<?php $obj = new ChildClass; ?>

Preverimo zdaj s pomočjo instanceof, ali naš objekt pripada razredu ParentClass in razredu ChildClass:

<?php var_dump($obj instanceof ChildClass); // izpiše true var_dump($obj instanceof ParentClass); // prav tako izpiše true ?>

Kot vidite iz primera - operator instanceof ne dela razlik pri preverjanju med nadrejenimi in podrejenimi razredi.

Ne zmedite se - če je objekt resnično iz nadrejenega razreda, potem bo preverjanje pripadnosti podrejenemu razredu vrnilo false:

<?php $obj = new ParentClass; // objekt nadrejenega razreda var_dump($obj instanceof ParentClass); // izpiše true var_dump($obj instanceof ChildClass); // izpiše false ?>

Naredite razred User z javnimi lastnostmi name in surname.

Naredite razred Employee, ki bo podedoval od razreda User in dodal lastnost salary.

Naredite razred City z javnimi lastnostmi name in population.

Ustvarite 3 objekte razreda User, 3 objekte razreda Employee, 3 objekte razreda City, in jih v poljubnem vrstnem redu zapišite v tabelo $arr.

Preglejte z zanko tabelo $arr in izpišite na zaslon stolpec lastnosti name tistih objektov, ki pripadajo razredu User ali potomcu tega razreda.

Preglejte z zanko tabelo $arr in izpišite na zaslon stolpec lastnosti name tistih objektov, ki ne pripadajo razredu User ali potomcu tega razreda.

Preglejte z zanko tabelo $arr in izpišite na zaslon stolpec lastnosti name tistih objektov, ki pripadajo natančno razredu User, to pomeni ne razredu City in ne razredu 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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni