⊗ppOpIhCOM 29 of 107 menu

Å kalle en overstyrt metode i OOP i PHP

Ved overstyring mister barneklassen tilgang til den overstyrte metoden i foreldreklassen. Likevel er det mulig å få tilgang til den. Dette gjøres ved hjelp av nøkkelordet parent, som peker på foreldreklassen.

La oss se på et eksempel når vi kan trenge tilgang til en foreldremetode. La oss si at vi har følgende foreldreklasse:

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

La oss si at vi i barneklassen har overstyrt foreldremetoden:

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

Man kan legge merke til at i den overstyrte metoden, når betingelsen er oppfylt, blir koden fra foreldremetoden faktisk utført. Dette resulterer i unødvendig kodeduplisering.

Vi kan unngå dette ved å kalle foreldremetoden. La oss gjøre det:

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

Følgende kode er gitt:

<?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 forenkle setteren for alder ved å bruke den originale metoden fra foreldreklassen.

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