⊗ppOpIhCOM 29 of 107 menu

Klicanje preoblikovane metode v OOP v PHP

Pri preoblikovanju potomec izgubi dostop do preoblikovane metode starša. Kljub temu je dostop do nje še vedno mogoč. To naredimo s ključno besedo parent, ki kaže na nadrejeni razred.

Poglejmo si primer, kdaj bomo morda potrebovali dostop do metode starša. Recimo, da imamo naslednji nadrejeni razred:

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

Recimo, da smo v razredu-potomcu preoblikovali metodo starša:

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

Opazimo lahko, da se v preoblikovani metodi ob izpolnjevanju pogoja dejansko izvede koda metode starša. Izkoristimo nepotrebno podvajanje kode.

Lahko se ga znebimo, če pokličemo metodo starša. Naredimo to:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { parent::setName($name); // metoda starša } else { echo 'napaka imena študenta'; } } } ?>

Podana je naslednja koda:

<?php class User { private $age; public function setAge($age) { if ($age >= 0) { $this->age = $age; } else { echo 'potrebna starost je večja od 0'; } } } class Employee extends User { public function setAge($age) { if ($age <= 120) { if ($age >= 0) { $this->age = $age; } else { echo 'potrebna starost je večja od 0'; } } else { echo 'potrebna starost je manjša od 120'; } } } ?>

V razredu Employee popravite poenostavite nastavljanje starosti z uporabo izvirne metode starša.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni