⊗ppOpMgSP 91 of 107 menu

PHP da OOP da sehrli orqali xususiyatlarni yozish

__set sehrli metodi mavjud bo'lmagan yoki yashirin xususiyatning qiymatini o'zgartirishga urinilganda chaqiriladi. Parametr sifatida u xususiyat nomi va unga tayinlashga urinayotgan qiymatni qabul qiladi.

Keling, amaliy misolni ko'rib chiqaylik. Bizda Test klassi berilgan bo'lsin:

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

Keling, ushbu klassda var_dump funksiyasi yaratdamida, murojaat qilingan xususiyat nomi va unga o'rnatilmoqchi bo'lgan qiymatni chiqaradigan __set sehrli metodini yarataylik:

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

Klassimizning ishlashini tekshiramiz:

<?php $test = new Test; $test->prop = 'value'; // __set metodining var_dump'i 'prop value' ni chiqaradi ?>

Endi nomi $property o'zgaruvchisida saqlanayotgan xususiyatga qiymat o'rnataylik:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $this->$property = $value; // qiymatni o'rnatamiz } } ?>

Endi biz private xususiyatlarga klass tashqarisidan qiymat yozishimiz mumkin:

<?php $test = new Test; $test->prop1 = 1; // 1 ni yozamiz $test->prop2 = 2; // 2 ni yozamiz ?>

Biz yozishimiz mumkin, ammo, u erga biror narsa yozilganligini tekshirishimiz mumkin emas, chunki xususiyatlar private.

Ushbu xususiyatlar uchun getter yaratish mumkin yoki shunchaki __get sehrli metodidan foydalanish mumkin. Keling, ikkinchi variantdan foydalanamiz:

<?php class Test { private $prop1; private $prop2; public function __set($property, $value) { $this->$property = $value; } // Xususiyatlar uchun sehrli getter: public function __get($property) { return $this->$property; } } ?>

Endi biz klassimizning ishlashini tekshirishimiz mumkin. Tekshiramiz:

<?php $test = new Test; $test->prop1 = 1; // 1 ni yozamiz $test->prop2 = 2; // 2 ni yozamiz echo $test->prop1; // 1 ni chiqaradi echo $test->prop2; // 2 ni chiqaradi ?>

Albatta, private xususiyatlarga hammaga yozishga ruxsat berish kerak emas, aks holda ushbu private xususiyatlarning ma'nosi yo'qoladi (ularni oddiygina public qilib qo'yish osonroq).

Shuning uchun ushbu metod faqat haqiqatan zarurat bo'lganda qo'llanilishi kerak. Keyingi darslarda biz buning muvaffaqiyatli qo'llanilishi misollarini ko'rib chiqamiz.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish