⊗ppOpIhOI 36 of 107 menu

Operator instanceof i nasleđivanje u OOP-u u PHP-u

Hajde da razmotrimo karakteristike nasleđivanja kada koristimo operator instanceof. Pretpostavimo da imamo roditeljsku klasu i izvedenu klasu (detetu):

<?php // Roditeljska klasa: class ParentClass { } // Izvedena klasa (klasa dete): class ChildClass extends ParentClass { } ?>

Napravimo objekat izvedene klase:

<?php $obj = new ChildClass; ?>

Sada proverimo pomoću instanceof, da li naš objekat pripada klasi ParentClass i klasi ChildClass:

<?php var_dump($obj instanceof ChildClass); // ispisaće true var_dump($obj instanceof ParentClass); // takođe ispisaće true ?>

Kao što vidite iz primera - operator instanceof ne pravi razliku prilikom provere između roditeljskih i izvedenih klasa.

Nemojte se zbuniti - ako je objekat zaista roditeljske klase onda će, naravno, provera pripadnosti izvedenoj klasi vratiti false:

<?php $obj = new ParentClass; // objekat roditeljske klase var_dump($obj instanceof ParentClass); // ispisaće true var_dump($obj instanceof ChildClass); // ispisaće false ?>

Napravite klasu User sa javnim svojstvima name i surname.

Napravite klasu Employee, koja će nasleđivati od klase User i dodavati svojstvo salary.

Napravite klasu City sa javnim svojstvima name i population.

Kreirajte 3 objekta klase User, 3 objekta klase Employee, 3 objekta klase City, i u proizvoljnom redosledu zapišite ih u niz $arr.

Prođite kroz niz $arr petljom i ispišite na ekran kolonu svojstava name onih objekata koji pripadaju klasi User ili potomku te klase.

Prođite kroz niz $arr petljom i ispišite na ekran kolonu svojstava name onih objekata koji ne pripadaju klasi User ili potomku te klase.

Prođite kroz niz $arr petljom i ispišite na ekran kolonu svojstava name onih objekata koji pripadaju tačno klasi User, odnosno ne klasi City i ne klasi Employee.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij