⊗ppOpMgGP 88 of 107 menu

PHP da OOP da xususiyatlarni sehr orqali olish

Biz ko'rib chiradigan keyingi sehrli metod __get deb ataladi. Ushbu metod maxsus yoki himoyalangan xususiyatning qiymatini o'qishga urinishda ishga tushadi.

Agar __get metodini biron bir classda amalga oshirsak, unda mavjud bo'lmagan yoki yashirin xususiyatlarga barcha murojaatlar ushbu metod tomonidan qayta ishlanadi.

Bunda PHP avtomatik ravishda so'ralgan xususiyatning nomini ushbu metodning birinchi parametriga o'tkazadi, va bu metod tomonidan qaytarilgan qiymat xususiyatning qiymati sifatida qabul qilinadi, unga murojaat qilingan.

Ehtimol hozircha bu qanday ishlashi aniq emas, shuning uchun keling amaliy misolni ko'rib chiqaylik. Faraz qilaylik, bizda Test classi bor, uning ichida maxsus va ochiq xususiyatlar mavjud:

<?php class Test { public $prop1 = 1; // ochiq xususiyat private $prop2 = 2; // maxsus xususiyat } ?>

Keling, classimizga __get sehrli metodini qo'shamiz, u boshlang'ich uchun shunchaki murojaat qilingan xususiyat nomini qaytaradi:

<?php class Test { public $prop1 = 1; private $prop2 = 2; public function __get($property) { return $property; // shunchaki xususiyat nomini qaytaramiz } } ?>

Keling, yaratilgan sehrli metodning ishlashini tekshiramiz. Uch turdagi xususiyatlarga murojaat qilaylik: ochiq xususiyatga, maxsus xususiyatga va mavjud bo'lmagan xususiyatga:

<?php $test = new Test; // Ochiq xususiyatga murojaat qilamiz: echo $test->prop1; // 1 ni chiqaradi - ya'ni xususiyatning qiymati // Maxsus xususiyatga murojaat qilamiz: echo $test->prop2; // 'prop2' ni chiqaradi - xususiyat nomi // Mavjud bo'lmagan xususiyatga murojaat qilamiz: echo $test->prop3; // 'prop3' ni chiqaradi - xususiyat nomi ?>

Ko'rib turganingizdek, bizning sehrli metodimiz maxsus va mavjud bo'lmagan xususiyatlarga murojaat qilishga reagirlaydi, lekin ochiq xususiyatlarga murojaat qilishni e'tiborsiz qoldiradi - ular avvalgidek ishlayveradi.

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