Ominaisuusgetterit OOP:ssa PHP:ssä
Oletetaan, että meillä on seuraava luokka yksityisillä ominaisuuksilla:
<?php
class User {
private $name;
private $surn;
public function __construct($name, $surn) {
$this->name = $name;
$this->surn = $surn;
}
}
?>
Kuten näet, nämä ominaisuudet asetetaan kerran olion luonnin yhteydessä. Nyt kuitenkaan niitä ominaisuuksia ei ole mahdollista lukea, sillä ne ovat yksityisiä eikä ole vastaavia menetelmiä tätä varten.
Tehdään ominaisuuksillemme erityisiä
menetelmiä, jotka mahdollistavat näiden ominaisuuksien lukemisen.
Tällaisia menetelmiä (joita kutsutaan gettereiksi) yleensä
alkavat sanalla get, jota seuraa
luettavan ominaisuuden nimi.
Tehdään ominaisuuksiemme getterit:
<?php
class User {
private $name;
private $surn;
public function __construct($name, $surn) {
$this->name = $name;
$this->surn = $surn;
}
public function getName() {
return $this->name;
}
public function getSurn() {
return $this->surn;
}
}
?>
Testataan niiden toimintaa. Luodaan olio, välittämällä parametrina käyttäjän tiedot:
<?php
$user = new User('john', 'smit');
?>
Luetaan nämä tiedot hyödyntämällä gettereitä:
<?php
var_dump($user->getName());
var_dump($user->getSurn());
?>
Luokassa Employee tee
kolme yksityistä ominaisuutta: nimi, palkka
ja ikä.
Välitä konstruktorin parametrina näiden ominaisuuksien arvot.
Tee getterit, jotka tulostavat jokaisen ominaisuuden arvot.