⊗ppOpIhOPM 28 of 107 menu

Valideyn metodlarinin OOP-də PHP-də yenidən təyin edilməsi

Alt sinif, eyni adlı metod yaradaraq valideyn metodunu yenidən təyin edə bilər. Nümunəyə baxaq. Tutaq ki, bizim aşağıdakı valideyn sinifimiz var:

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

Gəlin alt sinifdə eyniadlı metod yaradaq:

<?php class Student extends User { public function setName($name) { } } ?>

Bir qayda olaraq, valideyn metodlarının yenidən təyin edilməsi, bu metodun davranışını dəyişdirmək və ya əlavə etmək üçün lazımdır. Gəlin bizim vəziyyətimizdə adın uzunluğunu yoxlama əlavə edək:

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

Gəlin əmin olaq ki, dəqiq yenidən təyin edilmiş metod çağırılır. Əvvəlcə alt sinifin obyektini yaradaq:

<?php $student = new Student; ?>

İndi metodumuzu çağıraq, ona uyğun dəyər ötürərək:

<?php $student->setName('john'); ?>

İndi isə metodu, ona uyğun olmayan dəyər ötürərək çağıraq. Nəticədə yaranan istisnanı görəcəyik:

<?php $student->setName(''); // xəta ?>

User sinfindində yaş üçün getter və setter edin.

Employee sinfindində yaş setterını yenidən təyin edin və onunda yaşın 18 ilə 65 arasında olduğunu yoxlayın.

azbydeenesfrkakkptruuz