⊗ppOpIhOI 36 of 107 menu

Operatorn instanceof och arv i OOP i PHP

Låt oss undersöka detaljerna kring arv när vi använder operatorn instanceof. Låt oss säga att vi har en förälderklass och en barnklass:

<?php // Förälderklass: class ParentClass { } // Barnklass: class ChildClass extends ParentClass { } ?>

Låt oss skapa ett objekt av barnklassen:

<?php $obj = new ChildClass; ?>

Låt oss nu med hjälp av instanceof kontrollera om vårt objekt tillhör klassen ParentClass och klassen ChildClass:

<?php var_dump($obj instanceof ChildClass); // kommer att skriva ut true var_dump($obj instanceof ParentClass); // kommer också att skriva ut true ?>

Som du kan se från exemplet gör operatorn instanceof ingen skillnad vid kontroll mellan förälder- och barnklasser.

Bli inte förvirrad - om objektet verkligen är av förälderklassen så kommer kontrollen av tillhörighet till barnklassen naturligtvis att returnera false:

<?php $obj = new ParentClass; // objekt av förälderklassen var_dump($obj instanceof ParentClass); // kommer att skriva ut true var_dump($obj instanceof ChildClass); // kommer att skriva ut false ?>

Skapa klassen User med de publika egenskaperna name och surname.

Skapa klassen Employee, som ska ärva från klassen User och lägga till egenskapen salary.

Skapa klassen City med de publika egenskaperna name och population.

Skapa 3 objekt av klassen User, 3 objekt av klassen Employee, 3 objekt av klassen City, och skriv in dem i en array $arr i godtycklig ordning.

Gå igenom arrayen $arr med en loop och skriv ut en kolumn med egenskaperna name för de objekt som tillhör klassen User eller en avkomling till denna klass.

Gå igenom arrayen $arr med en loop och skriv ut en kolumn med egenskaperna name för de objekt som *inte* tillhör klassen User eller en avkomling till denna klass.

Gå igenom arrayen $arr med en loop och skriv ut en kolumn med egenskaperna name för de objekt som tillhör *exakt* klassen User, alltså varken klassen City eller klassen Employee.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa