⊗ppOpMgStNEP 92 of 107 menu

Odczyt nieistniejącej właściwości w OOP w PHP

Spróbujmy zapisać dane do nieistniejącej właściwości - to będzie działać:

<?php $test = new Test; $test->prop3 = 3; // zapiszemy 3 echo $test->prop3; // wypisze 3 ?>

Załóżmy, że nie chcemy zezwalać na zapisywanie do nieistniejących właściwości. I, ogólnie, chcemy zezwolić na zapis tylko do właściwości prop1 i prop2.

To łatwo zrobić - wystarczy w metodzie __set dodać odpowiedni warunek:

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

Jeśli takich właściwości będzie dużo, to nie bardzo wygodnie jest wymieniać je wszystkie w warunku.

Zapiszmy dozwolone do zapisu właściwości w tablicy i sprawdzajmy obecność właściwości w tej tablicy za pomocą funkcji in_array:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $properties = ['prop1', 'prop2']; // dozwolone właściwości if (in_array($property, $properties)) { $this->$property = $value; } } public function __get($property) { return $this->$property; } } ?>
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć