⊗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 файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу