⊗ppOpMgStNEP 92 of 107 menu

Čtení neexistující vlastnosti v OOP v PHP

Zkusme zapsat data do neexistující vlastnosti - bude to fungovat:

<?php $test = new Test; $test->prop3 = 3; // zapíšeme 3 echo $test->prop3; // vypíše 3 ?>

Řekněme, že nechceme povolit zápis do neexistujících vlastností. A obecně chceme povolit zápis pouze do vlastností prop1 a prop2.

To lze snadno udělat - stačí v metodě __set přidat odpovídající podmínku:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { // Napíšeme podmínku: if ($property == 'prop1' or $property == 'prop2') { $this->$property = $value; } } public function __get($property) { return $this->$property; } } ?>

Pokud bude takových vlastností mnoho, není příliš pohodlné je všechny vypisovat v podmínce.

Zapišme povolené vlastnosti pro zápis do pole a budeme ověřovat přítomnost vlastnosti v tomto poli pomocí funkce in_array:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $properties = ['prop1', 'prop2']; // povolené vlastnosti if (in_array($property, $properties)) { $this->$property = $value; } } public function __get($property) { return $this->$property; } } ?>
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout