⊗ppOpIhCOM 29 of 107 menu

Perrašyto metodo iškvietimas OOP PHP

Perrašant metodą, palikuonis praranda prieigą prie perrašyto tėvinio metodo. Tačiau, vis tiek galima gauti prieigą prie jo. Tai daroma naudojant raktinį žodį parent, kuris nurodo į tėvinę klasę.

Pažiūrėkime pavyzdžiu, kada mums gali prireikti prieigos prie tėvinio metodo. Tarkime, kad turime tokią tėvinę klasę:

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

Tarkime, kad palikuonio klasėje perrašėme tėvinį metodą:

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

Galima pastebėti, kad perrašytame metode, tenkinant sąlygą, faktiškai vykdomas tėvinio metodo kodas. Pasirodo, nereikalingas kodo dubuliavimas.

Galima nuo jo atsikratyti, jei iškviestume tėvinį metodą. Padarykime tai:

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

Duotas toks kodas:

<?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'; } } } ?>

Klasėje Employee pataisykite supaprastinkite amžiaus seterį, panaudodami originalų tėvinį metodą.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti