⊗ppOpMgSP 91 of 107 menu

PHP-те ООЖ-да сипаттарды жазу сиқыры

Сиқырлы әдіс __set жоқ немесе жасырын сипаттың мәнін өзгерту әрекеті кезінде шақырылады. Ол параметр ретінде сипат атауын және оған тағайындауға тынысқан мәнін қабылдайды.

Тәжірибелік мысалды қарастырайық. Бізде Test деген клас берілсін:

<?php class Test { private $prop1; private $prop2; } ?>

Осы класта var_dump функциясын қолданып, сипаттағы сілтеме атауы мен сол сипатқа орнатылуға тынысқан мәнін шығаратын сиқырлы әдіс __set жасайық:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { var_dump($property . ' ' .$value); } } ?>

Класымыздың жұмысын тексерейік:

<?php $test = new Test; $test->prop = 'value'; // __set әдісінің var_dump-ы 'prop value' шығарады ?>

Енді атауы $property айнымалысында сақталатын сипатқа мән берейік:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $this->$property = $value; // мәнін орнатамыз } } ?>

Енді біз жеке сипаттарға сырттан жаза аламыз:

<?php $test = new Test; $test->prop1 = 1; // 1 жазамыз $test->prop2 = 2; // 2 жазамыз ?>

Біз жаза аламыз, бірақ, онда бірнәрсе жазылғанын тексеру мүмкін емес, себебі сипаттар жеке.

Ол сипаттар үшін геттер жасауға болады немесе __get сиқырлы әдісін қолдануға болады. Екінші нұсқаны қолданайық:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $this->$property = $value; } // Сипаттардың сиқырлы геттері: public function __get($property) { return $this->$property; } } ?>

Енді класымыздың жұмысын тексере аламыз. Тексерейік:

<?php $test = new Test; $test->prop1 = 1; // 1 жазамыз $test->prop2 = 2; // 2 жазамыз echo $test->prop1; // 1 шығарады echo $test->prop2; // 2 шығарады ?>

Әрине, жеке сипаттарға бәріне жазуға рұқсат бермеу керек, әйтпесе бұл жеке сипаттардың мағынасы жоғалады (оларды жай жалпыға бірдей жасап қою оңайырақ).

Сондықтан бұл әдісті тек қажет болған жағдайда ғана қолдану керек. Келесі сабақтарда біз оны сәтті қолдану мысалдарын қарастырамыз.

Қазақ
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 файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау