⊗ppOpMgGP 88 of 107 menu

Kry van eienskappe deur magie in OOP in PHP

Die volgende magiese metode wat ons sal ondersoek, word genoem __get. Hierdie metode word geaktiveer wanneer daar gepoog word om die waarde van 'n private of beskermde eienskap te lees.

As die metode __get in enige klas geïmplementeer word, sal alle toegang tot nie-bestaande of verborge eienskappe deur hierdie metode hanteer word.

PHP sal outomaties die naam van die versoekte eienskap in die eerste parameter van hierdie metode oordra, en die waarde wat deur hierdie metode teruggegee word, sal gesien word as die waarde van die eienskap waarna toegang verkry is.

Dit is seker nog nie baie duidelik hoe dit werk nie, so laat ons kyk na 'n praktiese voorbeeld. Kom ons sê ons het die volgende klas Test met 'n private en 'n publieke eienskap:

<?php class Test { public $prop1 = 1; // publieke eienskap private $prop2 = 2; // private eienskap } ?>

Kom ons voeg die magiese metode __get by ons klas, wat om te begin net die naam van die eienskap sal teruggee, waarna toegang verkry is:

<?php class Test { public $prop1 = 1; private $prop2 = 2; public function __get($property) { return $property; // gee net die eienskapnaam terug } } ?>

Kom ons toets die werking van die geskepte magiese metode. Ons sal toegang tot drie tipes eienskappe verkry: tot die publieke eienskap, tot die private eienskap en tot 'n nie-bestaande eienskap:

<?php $test = new Test; // Toegang tot die publieke eienskap: echo $test->prop1; // sal 1 wys - dit is die waarde van die eienskap // Toegang tot die private eienskap: echo $test->prop2; // sal 'prop2' wys - die eienskapnaam // Toegang tot 'n nie-bestaande eienskap: echo $test->prop3; // sal 'prop3' wys - die eienskapnaam ?>

Soos jy kan sien, reageer ons magiese metode op toegang tot private en nie-bestaande eienskappe, maar ignoreer toegang tot publieke eienskappe - hulle werk soos voorheen.

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