⊗ppOpMgStNEP 92 of 107 menu

Læsning af ikke-eksisterende egenskab i OOP i PHP

Lad os prøve at skrive data til en ikke-eksisterende egenskab - dette vil fungere:

<?php $test = new Test; $test->prop3 = 3; // skriver 3 echo $test->prop3; // udskriver 3 ?>

Lad os sige, at vi ikke vil tillade at skrive til ikke-eksisterende egenskaber. Og generelt ønsker vi kun at tillade skrivning til egenskaberne prop1 og prop2.

Dette er let at gøre - det er nok at tilføje den tilsvarende betingelse i metoden __set:

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

Hvis der er mange sådanne egenskaber, er det ikke særlig praktisk at opremse dem alle i betingelsen.

Lad os skrive de tilladte egenskaber til skrivning i et array og kontrollere tilstedeværelsen af egenskaben i dette array ved hjælp af funktionen in_array:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $properties = ['prop1', 'prop2']; // tilladte egenskaber if (in_array($property, $properties)) { $this->$property = $value; } } public function __get($property) { return $this->$property; } } ?>
Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis