⊗ppOpMgSP 91 of 107 menu

Skryf eienskappe deur magie in OOP in PHP

Die magiese metode __set word opgeroep wanneer daar gepoog word om die waarde van 'n nie-bestaande of verborge eienskap te verander. As parameters aanvaar dit die naam van die eienskap en die waarde wat daaraan toegeken probeer word.

Kom ons kyk na 'n praktiese voorbeeld. Gestel ons het die volgende klas Test:

<?php class Test { private $prop1; private $prop2; } ?>

Kom ons maak 'n magiese metode __set in hierdie klas, wat met behulp van die funksie var_dump die naam van die eienskap waartoe toegang verkry is, en die waarde wat aan daardie eienskap toegeken probeer word, sal vertoon:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { var_dump($property . ' ' .$value); } } ?>

Kom ons toets die werk van ons klas:

<?php $test = new Test; $test->prop = 'value'; // var_dump van die __set metode sal 'prop value' vertoon ?>

Kom ons probeer nou om 'n waarde toe te ken aan 'n eienskap waarvan die naam in die veranderlike $property gestoor word:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $this->$property = $value; // ken die waarde toe } } ?>

Nou kan ons in private eienskappe van buite die klas skryf:

<?php $test = new Test; $test->prop1 = 1; // skryf 1 $test->prop2 = 2; // skryf 2 ?>

Ons kan wel skryf, maar ons kan nie toets of iets daarin geskryf is nie, aangesien die eienskappe privaat is.

Ons kan 'n getter vir hierdie eienskappe maak of eenvoudig die magiese metode __get gebruik. Kom ons gebruik die tweede opsie:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $this->$property = $value; } // Magiese getter vir eienskappe: public function __get($property) { return $this->$property; } } ?>

Nou kan ons die werk van ons klas toets. Kom ons toets:

<?php $test = new Test; $test->prop1 = 1; // skryf 1 $test->prop2 = 2; // skryf 2 echo $test->prop1; // sal 1 vertoon echo $test->prop2; // sal 2 vertoon ?>

In werklikheid moet jy natuurlik nie toelaat dat enigiemand in private eienskappe skryf nie, anders verloor hierdie private eienskappe hul betekenis (dit is makliker om hulle publiek te maak en klaar is jy).

Dus moet hierdie metode slegs gebruik word wanneer daar werklik 'n behoefte daaraan is. In die volgende lesse sal ons nog voorbeelde van suksesvolle toepassing oorweeg.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp