⊗ppOpBsGSA 14 of 107 menu

Settien ja gettien edut OOP:ssa PHP:ssä

Edellisessä oppitunnissa teimme jokaiselle ominaisuudelle getterin ja setterin. Saattaa herätä kysymys, miksi tällaiset monimutkaisuudet ovat tarpeellisia, sillä käytännössä samaan tulokseen voitaisiin päätyä tekemällä ominaisuudet julkisiksi, eikä yksityisiksi.

Asia on niin, että gettereillä ja settereillä on etuja: ennen ominaisuuteen kääntymistä voidaan suorittaa tarkistuksia. Esimerkiksi meidän tapauksessamme voimme nimen ja sukunimen kirjoittamisen yhteydessä tarkistaa, että uusi arvo ei ole tyhjä merkkijono:

<?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; } } ?>

Testataan, kuinka tämä toimii. Aluksi luodaan luokan olio:

<?php $user = new User(); ?>

Yritetään nyt kirjoittaa oikea arvo:

<?php $user->setName('john'); ?>

Yritetään nyt kirjoittaa väärä arvo:

<?php $user->setName(''); // virhe ?>

Luokassa Employee setterissä iälle tee tarkistus, että iän tulee olla vähintään 0 ja enintään 120.

Luokassa Employee getterissä palkalle tee niin, että palkkaa luettaessa sen arvon perään lisätään dollarimerkki.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää