⊗ppOpMgStNEP 92 of 107 menu

Å lese en ikke-eksisterende egenskap i OOP i PHP

La oss prøve å skrive data til en ikke-eksisterende egenskap - dette vil fungere:

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

La oss si at vi ikke vil tillate å skrive til ikke-eksisterende egenskaper. Og generelt ønsker vi kun å tillate skriving til egenskapene prop1 og prop2.

Dette er enkelt å gjøre - det er nok å legge til tilsvarende betingelse i metoden __set:

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

Hvis det er mange slike egenskaper, blir det ikke veldig praktisk å liste dem alle opp i en betingelse.

La oss skrive de tillatte egenskapene for skriving inn i en array og sjekke tilstedeværelsen av egenskapen i denne arrayen ved hjelp av funksjonen in_array:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $properties = ['prop1', 'prop2']; // tillatte egenskaper if (in_array($property, $properties)) { $this->$property = $value; } } public function __get($property) { return $this->$property; } } ?>
Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis