⊗ppOpIhOI 36 of 107 menu

Ο Τελεστής instanceof και η Κληρονομικότητα στην αντικειμενοστρεφή προγραμματισμό στην PHP

Ας εξετάσουμε τα χαρακτηριστικά της κληρονομικότητας όταν χρησιμοποιούμε τον τελεστή instanceof. Ας υποθέσουμε ότι έχουμε μια γονική κλάση και μια παιδική κλάση:

<?php // Γονική κλάση: class ParentClass { } // Παιδική κλάση: class ChildClass extends ParentClass { } ?>

Ας δημιουργήσουμε ένα αντικείμενο της παιδικής κλάσης:

<?php $obj = new ChildClass; ?>

Ας ελέγξουμε τώρα με τη βοήθεια του instanceof, αν το αντικείμενό μας ανήκει στην κλάση ParentClass και στην κλάση ChildClass:

<?php var_dump($obj instanceof ChildClass); // θα εμφανίσει true var_dump($obj instanceof ParentClass); // θα εμφανίσει επίσης true ?>

Όπως βλέπετε από το παράδειγμα - ο τελεστής instanceof δεν κάνει διάκριση κατά τον έλεγχο μεταξύ γονικών και παιδικών κλάσεων.

Μην μπερδεύεστε - εάν το αντικείμενο είναι πράγματι της γονικής κλάσης, τότε, φυσικά, ο έλεγχος για ανήκει στην παιδική κλάση θα επιστρέψει false:

<?php $obj = new ParentClass; // αντικείμενο γονικής κλάσης var_dump($obj instanceof ParentClass); // θα εμφανίσει true var_dump($obj instanceof ChildClass); // θα εμφανίσει false ?>

Δημιουργήστε μια κλάση User με δημόσιες ιδιότητες name και surname.

Δημιουργήστε μια κλάση Employee, η οποία θα κληρονομεί από την κλάση User και θα προσθέτει την ιδιότητα salary.

Δημιουργήστε μια κλάση City με δημόσιες ιδιότητες name και population.

Δημιουργήστε 3 αντικείμενα της κλάσης User, 3 αντικείμενα της κλάσης Employee, 3 αντικείμενα της κλάσης City, και με τυχαία σειρά γράψτε τα σε έναν πίνακα $arr.

Περιμένετε με βρόχο τον πίνακα $arr και εμφανίστε στην οθόνη μια στήλη με τις ιδιότητες name εκείνων των αντικειμένων, που ανήκουν στην κλάση User ή σε απόγονό αυτής της κλάσης.

Περιμένετε με βρόχο τον πίνακα $arr και εμφανίστε στην οθόνη μια στήλη με τις ιδιότητες name εκείνων των αντικειμένων, που δεν ανήκουν στην κλάση User ή σε απόγονό αυτής της κλάσης.

Περιμένετε με βρόχο τον πίνακα $arr και εμφανίστε στην οθόνη μια στήλη με τις ιδιότητες name εκείνων των αντικειμένων, που ανήκουν ακριβώς στην κλάση User, δηλαδή όχι στην κλάση City και όχι στην κλάση Employee.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη