PHPda OOPda Ota klass usullarini qayta belgilash
Vorıs klass ota klassning usulini xuddi shu nom bilan usul yaratish orqali qayta belgilashi mumkin. Keling, buni bir misol orqali ko'rib chiqaylik. Faraz qilaylik, bizda quyidagi ota klass mavjud:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Keling, vorıs klassda xuddi shu nomdagi usulni yaratamiz:
<?php
class Student extends User {
public function setName($name) {
}
}
?>
Odatda, ota usullarini qayta belgilash ushbu usulning xatti-harakatini o'zgartirish yoki to'ldirish uchun kerak bo'ladi. Keling, bizning holatda ism uzunligini tekshirish qo'shaylik:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'student name error';
}
}
}
?>
Keling, chaqirilayotgani aniq qayta belgilangan usul ekanligiga ishonch hosil qilaylik. Boshdan, vorıs klassning ob'ektini yaratamiz:
<?php
$student = new Student;
?>
Endi usulimizni chaqiramiz, unga to'g'ri qiymat uzatib:
<?php
$student->setName('john');
?>
Endi esa usulni chaqirib, unga noto'g'ri qiymat uzatamiz. Natijada chiqarilgan istisnoni ko'ramiz:
<?php
$student->setName(''); // xato
?>
User klassida
yosh uchun getter va setter yarating.
Employee klassida yosh setterini
qayta belgilang va unga yosh
18 dan 65 yoshgacha ekanligini
tekshirish qo'shing.