⊗ppOpIhOPM 28 of 107 menu

Overstyre foreldremetoder i OOP i PHP

En underklasse kan overstyre en foreldremetode ved å opprette en metode med samme navn. La oss se på et eksempel. 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 i underklassen opprette en metode med samme navn:

<?php class Student extends User { public function setName($name) { } } ?>

Vanligvis er overstyring av metoder fra forelderen nødvendig for å endre eller supplere oppførselen til denne metoden. La oss i vårt tilfelle legge til en sjekk av navnelengden:

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

La oss forsikre oss om at det er nettopp den overstyrte metoden som kalles. La oss først opprette et objekt av underklassen:

<?php $student = new Student; ?>

La oss nå kalle metoden vår, og gi den en korrekt verdi:

<?php $student->setName('john'); ?>

Og la oss nå kalle metoden, og gi den en ukorrekt verdi. Som et resultat vil vi se en utløst unntak:

<?php $student->setName(''); // feil ?>

I klassen User lag getter og setter for alder.

I klassen Employee overstyr alder-setteren og gjør en sjekk på at alderen er fra 18 til 65 år.

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