⊗ppOpMgGP 88 of 107 menu

Дар PHP дар ООП ба воситаи ҷодугӣ хосиятҳо гирифтан

Усули ҷодуии навбатӣ, ки мо бо шамо баррасӣ мекунем, __get номида мешавад. Ин усул вақте фаъол мешавад, ки кӯшиш барои хондани қимати хосияти махсус ё муҳофизатшуда рух медиҳад.

Агар усули __get-ро дар ягон синф амалӣ кунем, пас ҳамаи муроҷиатҳо ба хосиятҳои мавҷуднабуда ё пинҳоншуда бо ин усул коркард карда мешаванд.

Дар ин ҳолат PHP худкор номи хосияти дархостшударо ба параметри якуми ин усул мегузаронад, ва қимати баргардонидашуда аз ҷониби ин усул ҳамчун қимати хосият қабул карда мешавад, ки ба он муроҷиат рӯй додааст.

Эҳтимолан ҳоло хеле фаҳмо нест, ки ин чӣ гуна кор мекунад, бинобар ин биёед ба мисоли амалӣ нигарем. Бигзор мо чунин синфи Test-ро бо хосияти махсус ва оммавӣ дошта бошем:

<?php class Test { public $prop1 = 1; // хосияти оммавӣ private $prop2 = 2; // хосияти махсус } ?>

Биёед ба синфи мо усули ҷодуии __get илова кунем, ки барои оғоз танҳо nomi хосиятро, ки ба он муроҷиат шудааст, баргардонад:

<?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šuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан