⊗ppOpMgStNEP 92 of 107 menu

Att läsa icke-existerande egenskaper i OOP i PHP

Låt oss försöka skriva data till en icke-existerande egenskap - detta kommer att fungera:

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

Låt oss säga att vi inte vill tillåta skrivning till icke-existerande egenskaper. Och generellt sett vill vi tillåta skrivning endast till egenskaperna prop1 och prop2.

Detta är lätt att göra - det räcker att lägga till motsvarande villkor i metoden __set:

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

Om det finns många sådana egenskaper är det inte särskilt bekvämt att räkna upp dem alla i villkoret.

Låt oss skriva de tillåtna egenskaperna för skrivning i en array och kontrollera förekomsten av egenskapen i denna array med funktionen in_array:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $properties = ['prop1', 'prop2']; // tillåtna egenskaper if (in_array($property, $properties)) { $this->$property = $value; } } public function __get($property) { return $this->$property; } } ?>
Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa