OOP da PHP da qayta belgilangan metodni chaqirish
Qayta belgilashda voris ota-onaning qayta belgilangan
metodiga kirish huquqini yo'qotadi. Biroq, unga
kirish hali ham mumkin. Bunga parent kalit so'zi
orqali erishish mumkin,
bu ota-ona sinfini ko'rsatadi.
Keling, ota-ona metodiga kirish qachon kerak bo'lishi mumkinligini misolda ko'ramiz. Faraz qilaylik, bizda quyidagi ota-ona sinfi mavjud:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Faraz qilaylik, voris sinfda ota-ona metodini qayta belgiladik:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'student name error';
}
}
}
?>
E'tibor bering, qayta belgilangan metodda shart bajarilganda aslida ota-ona metodining kodi bajariladi. Bu keraksiz kod takrorlashiga olib keladi.
Bundan ota-ona metodini chaqirish orqali xalos bo'lish mumkin. Buni amalga oshiramiz:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
parent::setName($name); // ota-ona metodi
} else {
echo 'student name error';
}
}
}
?>
Quyidagi kod berilgan:
<?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 sinfida
yosh setterini soddalashtiring, ota-onaning
original metodidan foydalangan holda.