Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗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