⊗ppOpMgStNEP 92 of 107 menu

Olemattoman ominaisuuden lukeminen OOP:ssa PHP:ssä

Yritetään kirjoittaa dataa olemattomaan ominaisuuteen - tämä toimii:

<?php $test = new Test; $test->prop3 = 3; // kirjoitetaan 3 echo $test->prop3; // tulostaa 3 ?>

Oletetaan, että emme halua sallia kirjoittamista olemattomiin ominaisuuksiin. Ja yleisesti, haluamme sallia kirjoituksen vain ominaisuuksiin prop1 ja prop2.

Tämä on helppo toteuttaa - riittää, että __set-metodissa lisätään vastaava ehto:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { // Kirjoitetaan ehto: if ($property == 'prop1' or $property == 'prop2') { $this->$property = $value; } } public function __get($property) { return $this->$property; } } ?>

Jos tällaisia ominaisuuksia on paljon, niin ei ole kovin kätevää luetella ne kaikki ehdossa.

Tallennetaan sallitut kirjoitusominaisuudet taulukkoon ja tarkistetaan ominaisuuden olemassaolo tässä taulukossa in_array-funktiolla:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $properties = ['prop1', 'prop2']; // sallitut ominaisuudet if (in_array($property, $properties)) { $this->$property = $value; } } public function __get($property) { return $this->$property; } } ?>
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ää