Memanggil Kaedah Terubah Suai dalam OOP dalam PHP
Apabila mengubah suai, kelas anak kehilangan
akses kepada kaedah induk yang diubah suai.
Walau bagaimanapun, akses kepadanya masih
boleh diperolehi. Ini dilakukan dengan
menggunakan kata kunci parent,
yang merujuk kepada kelas induk.
Mari kita lihat contoh di mana kita mungkin memerlukan akses kepada kaedah induk. Katakan kita mempunyai kelas induk berikut:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Katakan kita dalam kelas anak telah mengubah suai kaedah induk:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'student name error';
}
}
}
?>
Boleh diperhatikan bahawa dalam kaedah yang diubah suai, apabila syarat dipenuhi, sebenarnya kod kaedah induk dilaksanakan. Ini menyebabkan penduaan kod yang tidak perlu.
Ia boleh dielakkan dengan memanggil kaedah induk. Mari lakukan ini:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
parent::setName($name); // kaedah induk
} else {
echo 'student name error';
}
}
}
?>
Diberi kod berikut:
<?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';
}
}
}
?>
Dalam kelas Employee, betulkan
penetap umur dengan memudahkannya, menggunakan
kaedah induk asal.