АКЦЫЯ: бясплатныя месячныя курсы па стварэнні сайтаў
на выбар: вёрстка, JavaScript, PHP, Python або фрэймворкі. Сёння апошні дзень для запісу! Націскай!
⊗ppOpIhCOM 29 of 107 menu

Выклік пераазначанага метаду ў ААП у PHP

Пры пераазначэнні нашчадак губляе доступ да пераазначанага метаду бацькі. Аднак, атрымаць доступ да яго ўсё роўна можна. Гэта робіцца з дапамогай ключавога слова parent, якое паказвае на бацькоўскі клас.

Давайце паглядзім на прыкладзе, калі нам можа спатрэбіцца доступ да бацькоўскага метаду. Няхай у нас ёсць наступны клас-бацька:

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

Няхай мы ў класе-нашчадку пераазначылі метад бацькі:

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

Можна заўважыць, што ў пераазначаным метадзе пры выкананні ўмовы фактычна выконваецца код бацькоўскага метаду. Атрымліваецца не патрэбнае дубляванне кода.

Можна ад яго пазбавіцца, калі выклікаць метад бацькі. Давайце зробім гэта:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { parent::setName($name); // метад бацькі } else { echo 'student name error'; } } } ?>

Дадзены наступны код:

<?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 выпраўце спрасціце сетэр узросту, выкарыстаўшы арыгінальны метад бацькі.

byenru