⊗ppOpMgGP 88 of 107 menu

Īpašību iegūšana ar magiju OPHP PHP

Nākamā magiskā metode, ko mēs apskatīsim, saucas __get. Šī metode tiek izsaukta, mēģinot nolasīt vērtību no privātas vai aizsargātas īpašības.

Ja klasē tiek implementēta metode __get, tad visi piekļūvumi neesošām vai slēptām īpašībām tiks apstrādāti ar šo metodi.

Šajā gadījumā PHP automātiski pārsūtīs pieprasītās īpašības nosaukumu pirmajā parametrā šīs metodes, un šīs metodes atgrieztā vērtība tiks uztverta kā īpašības vērtība, pie kuras tika piekļūts.

Iespējams, ka pagaidām nav īsti skaidrs, kā tas strādā, tāpēc apskatīsim praktisku piemēru. Pieņemsim, ka mums ir šāda klase Test ar privātu un publisku īpašību:

<?php class Test { public $prop1 = 1; // publiska īpašība private $prop2 = 2; // privāta īpašība } ?>

Pievienosim mūsu klasei magisko metodi __get, kas sākumā vienkārši atgriezīs tās īpašības nosaukumu, pie kuras tika piekļūts:

<?php class Test { public $prop1 = 1; private $prop2 = 2; public function __get($property) { return $property; // vienkārši atgriezīsim īpašības nosaukumu } } ?>

Pārbaudīsim izveidotās magiskās metodes darbību. Pieklūsim pie trim īpašību veidiem: pie publikas īpašības, pie privātās un pie neesošās:

<?php $test = new Test; // Pieklūstam pie publikas īpašības: echo $test->prop1; // izvadīs 1 - tas ir, īpašības vērtību // Pieklūstam pie privātās īpašības: echo $test->prop2; // izvadīs 'prop2' - īpašības nosaukums // Pieklūstam pie neesošās īpašības: echo $test->prop3; // izvadīs 'prop3' - īpašības nosaukums ?>

Kā redzat, mūsu magiskā metode reaģē uz piekļūšanu privātām un neesošām īpašībām, bet ignorē piekļūšanu publiskajām - tās strādā tā, kā strādāja iepriekš.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt