⊗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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել