Ufafanuzi Upya wa Njia za Mzazi katika OOP katika PHP
Darasa la mtoto linaweza kufafanua upya njia ya mzazi kwa kuunda njia kwa jina sawa. Hebu tuangalie kwa mfano. Hebu tuchukulie tuna darasa la mzazi lifuatalo:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Hebu katika darasa la mtoto tuunde njia yenye jina moja:
<?php
class Student extends User {
public function setName($name) {
}
}
?>
Kwa kawaida, ufafanuzi upya wa njia za mzazi unahitajika ili kubadilisha au kuongeza tabia ya njia hiyo. Hebu katika kesi yetu tuongeze ukaguzi wa urefu wa jina:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'kosa la jina la mwanafunzi';
}
}
}
?>
Hebu tuhakikishe kwamba inaitwa hasa njia iliyofafanuliwa upya. Kwanza tuunde kitu cha darasa la mtoto:
<?php
$student = new Student;
?>
Sasa tuite njia yetu, tukipitisha ndani yake thamani iliyosahihishwa:
<?php
$student->setName('john');
?>
Sasa tuite njia, tukipitisha ndani yake thamani isiyosahihishwa. Kama matokeo tutaona isipokuwa iliyotupwa:
<?php
$student->setName(''); // kosa
?>
Katika darasa User fanya
kipatikanaji na kisetaji cha umri.
Katika darasa Employee fafanua upya
kisetaji cha umri na ufanye ndani yake
ukaguzi wa kwamba umri ni kutoka
18 hadi 65 miaka.