⊗ppOpMgStNEP 92 of 107 menu

Nem létező tulajdonság olvasása OOP-ban PHP-ben

Próbáljunk meg adatot írni egy nem létező tulajdonságba - ez működni fog:

<?php $test = new Test; $test->prop3 = 3; // írjuk be a 3-at echo $test->prop3; // kiírja a 3-at ?>

Tegyük fel, hogy nem akarjuk lehetővé tenni a nem létező tulajdonságokba való írást. És általában csak a prop1 és prop2 tulajdonságokba akarjuk engedélyezni az írást.

Ezt könnyű megtenni - elég a __set metódusban hozzáadni a megfelelő feltételt:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { // Írjunk egy feltételt: if ($property == 'prop1' or $property == 'prop2') { $this->$property = $value; } } public function __get($property) { return $this->$property; } } ?>

Ha sok ilyen tulajdonság lenne, akkor nem túl kényelmes mindet felsorolni a feltételben.

Írjuk be az írásra engedélyezett tulajdonságokat egy tömbbe, és ellenőrizzük a tulajdonság jelenlétét ebben a tömbben az in_array függvény segítségével:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $properties = ['prop1', 'prop2']; // engedélyezett tulajdonságok if (in_array($property, $properties)) { $this->$property = $value; } } public function __get($property) { return $this->$property; } } ?>
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás