Voordele van Setters en Getters in OOP in PHP
In die vorige les het ons vir elke eienskap 'n getter en setter gemaak. 'n Vraag mag ontstaan: waarom is sulke kompleksiteite nodig, aangesien feitlik dieselfde effek bereik kan word deur die eienskappe publiek te maak, nie privaat nie.
Die saak is dat getters en setters 'n voordeel het: voor toegang tot die eienskap kan sekere kontroles uitgevoer word. Byvoorbeeld, in ons geval kan ons by die skryf van die naam en van die naam kontroleer dat die nuwe waarde nie 'n leë string is nie:
<?php
class User {
private $name;
private $surn;
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'name is incorrect';
}
}
public function setSurn($surn) {
if (strlen($surn) > 0) {
$this->surn = $surn;
} else {
echo 'surn is incorrect';
}
}
public function getName() {
return $this->name;
}
public function getSurn() {
return $this->surn;
}
}
?>
Kom ons toets hoe dit werk. Laat ons eers 'n objek van die klas skep:
<?php
$user = new User();
?>
Laat ons nou probeer om 'n korrekte waarde te skryf:
<?php
$user->setName('john');
?>
En laat ons nou probeer om 'n onkorrekte een te skryf:
<?php
$user->setName(''); // fout
?>
In die klas Employee, maak in die setter
vir ouderdom 'n kontrole dat die ouderdom moet wees
van 0 tot 120.
In die klas Employee, maak in die getter
vir salaris so dat wanneer die salaris gelees word,
'n dollarteken aan die einde van sy waarde gevoeg word.