⊗ppOpIhCOM 29 of 107 menu

Kald af overskrevet metode i OOP i PHP

Ved overskrivning mister afkommet adgang til den overskrevne metode i forælderen. Det er dog stadig muligt at få adgang til den. Dette gøres ved hjælp af nøgleordet parent, som peger på forælderklassen.

Lad os se på et eksempel, hvor vi måske har brug for adgang til forælderens metode. Lad os antage, at vi har følgende forælderklasse:

<?php class User { private $name; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } ?>

Lad os antage, at vi i afkomklassen har overskrevet forælderens metode:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'student name error'; } } } ?>

Det kan bemærkes, at i den overskrevne metode, når betingelsen er opfyldt, udføres essentielt koden fra forælderens metode. Dette resulterer i unødvendig kodeduplikering.

Vi kan undgå dette ved at kalde forælderens metode. Lad os gøre dette:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { parent::setName($name); // forælderens metode } else { echo 'student name error'; } } } ?>

Følgende kode er givet:

<?php class User { private $age; public function setAge($age) { if ($age >= 0) { $this->age = $age; } else { echo 'need age more 0'; } } } class Employee extends User { public function setAge($age) { if ($age <= 120) { if ($age >= 0) { $this->age = $age; } else { echo 'need age more 0'; } } else { echo 'need age less 120'; } } } ?>

I klassen Employee skal du rette og forenkle setteren for alder ved at bruge forælderens oprindelige metode.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis