⊗ppOpMgGP 88 of 107 menu

Добивање на својства преку магија во ООП во PHP

Следниот магичен метод, кој ќе го разгледаме, се вика __get. Овој метод се активира при обид за читање на вредноста на приватно или заштитено својство.

Ако се имплементира методот __get во некоја класа, тогаш сите пристапи до непостоечки или скриени својства ќе се обработуваат од овој метод.

Притоа PHP автоматски ќе го пренесува името на побараното својство во првиот параметар на овој метод, а вратената вредност од овој метод ќе се восприеме како вредност на својството до кое се пристапило.

Најверојатно сеуште не е многу јасно, како ова функционира, па затоа да погледнеме практичен пример. Нека имаме вакава класа Test со приватно и јавно својство:

<?php class Test { public $prop1 = 1; // јавно својство private $prop2 = 2; // приватно својство } ?>

Да го додадеме во нашата класа магичниот метод __get, кој за почеток ќе биде едноставно го враќа името на својството, до кое се пристапило:

<?php class Test { public $prop1 = 1; private $prop2 = 2; public function __get($property) { return $property; // едноставно го враќаме името на својството } } ?>

Да ја провериме работата на создадениот магичен метод. Да пристапиме до три типа на својства: до јавното својство, до приватното и до непостоечкото:

<?php $test = new Test; // Пристапуваме до јавното својство: echo $test->prop1; // ќе испечати 1 - односно вредноста на својството // Пристапуваме до приватното својство: echo $test->prop2; // ќе испечати 'prop2' - името на својството // Пристапуваме до непостоечкото својство: echo $test->prop3; // ќе испечати 'prop3' - името на својството ?>

Како што можете да видите, нашиот магичен метод реагира на пристап до приватни и непостоечки својства, но го игнорира пристапот до јавните - тие работат како што работеле и досега.

Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј