⊗ppOpIhCOM 29 of 107 menu

OOP-də PHP-də override edilmiş metodun çağırılması

Override etdikdə nəsilin override edilmiş valideyn metoduna çıxışı itir. Lakin buna çıxışı yenə də əldə etmək olar. Bu, valideyn sinfinə işarə edən parent açar sözü vasitəsilə edilir.

Gəlin nümunə ilə baxaq, nə vaxt valideyn metoduna çıxışımız ola bilər. Tutaq ki, bizdə aşağıdakı valideyn sinif var:

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

Tutaq ki, biz nəsil sinifdə valideyn metodunu override etdik:

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

Qeyd etmək olar ki, override edilmiş metodda şərt yerinə yetirildikdə faktiki olaraq valideyn metodunun kodu icra olunur. Nəticədə lazımsız kod təkrarı yaranır.

Bundan valideyn metodunu çağırmaqla xilas olmaq olar. Gəlin bunu edək:

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

Aşağıdakı kod verilmişdir:

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

Employee sinfində yaş setterini düzəldin, valideynin orijinal metodundan istifadə edərək sadələşdirin.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et