PHP-de OOP-da ata-klaslaryň usullaryny täzeden kesgitlemek
Miras alyjy klas, şol bir atly usul döredip, ata-klasyň usulyny täzeden kesgitlep biler. Mysala serediň. Aşakdaky ata-klasymyz bar diýeliň:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Geliň miras alyjy klasda şol bir atly usul dörediň:
<?php
class Student extends User {
public function setName($name) {
}
}
?>
Esasan, ata-klasyň usulyny täzeden kesgitlemek, usulyň hereketini üýtgetmek ýa-da goşmaça doldurmak üçin zerurdyr. Bizde bolsa, adyň uzynlygyny barlagyny goşalyň:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'student name error';
}
}
}
?>
Çakylyşda takyk täzeden kesgitlenen usulyň çagyrylandygyna göz ýetireliň. Ilki bilen, miras alyjy klasyň objektiň dörediň:
<?php
$student = new Student;
?>
Indi usuly çagyryň we ona dogry baha beriň:
<?php
$student->setName('john');
?>
Indi bolsa, usuly nädogry baha bilen çagyryň. Netijede, ýüze çykan ýalňyşlygy göreris:
<?php
$student->setName(''); // ýalňyşlyk
?>
User klasynda
ýaş üçin getter we setter ýasaň.
Employee klasynda ýaş setterini
täzeden kesgitleň we onuň içinde ýaşyň
18-den 65 ýaşa çenli bolýandygyny barlaň.