⊗ppOpMgROP 89 of 107 menu

PHP ရှိ OOP တွင် ဖတ်ရှုရန်သာ အသုံးပြုနိုင်သော ဂုဏ်သတ္တိများ

အများသူငှာ မရနိုင်သော ဂုဏ်သတ္တိများရှိသည့် ကလပ်စ်တစ်ခုကို ကြည့်ကြပါစို့။

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

ယခု ဤဂုဏ်သတ္တိများကို ပြင်ပလောကတွင် ဖတ်ရှုရန်သာ ရရှိနိုင်အောင် ပြုလုပ်ကြပါစို့။ ကျွန်ုပ်တို့သည် ယခင်က ဂုဏ်သတ္တိတစ်ခုစီအတွက် getter များကို ဖန်တီးကာ setter များကို မဖန်တီးခြင်းဖြင့် ဤကဲ့သို့ပြုလုပ်ခဲ့ပြီးဖြစ်သည်။

ယခု ဤပြဿနာကိုဖြေရှင်းရန် မှော်နည်းလမ်း __get ကို အသုံးပြုကြပါစို့။ ၎င်းတွင် တောင်းဆိုထားသော ဂုဏ်သတ္တိ၏ တန်ဖိုးကို ပြန်ပေးပါမည်။ မည်သို့ပြုလုပ်ရမည်နည်း။ တောင်းဆိုထားသော ဂုဏ်သတ္တိ၏ အမည်သည် __get နည်းလမ်း၏ သတ်မှတ်ချက်ထဲသို့ ရောက်ရှိလာပြီး၊ ကျွန်ုပ်တို့၏ကိစ္စတွင် ၎င်းသည် $property ဖြစ်သည်။

ဆိုလိုသည်မှာ၊ အမည်သည် ကိန်းရှင်ထဲတွင် သိမ်းဆည်းထားသော ဂုဏ်သတ္တိ၏ တန်ဖိုးကို ဤသို့ဖတ်နိုင်သည်။ $this->$property (ဂုဏ်သတ္တိ၏အမည်သည် ကိန်းရှင်တစ်ခုဖြစ်လာမည်၊ ဆိုလိုသည်မှာ အစတွင် ဒေါ်လာလက္ခဏာပါမည်၊ ကျွန်ုပ်တို့သည် ယခင်သင်ခန်းစာများတွင် ဤအချက်ကိုလေ့လာခဲ့ပြီးဖြစ်သည်)။

ဖော်ပြထားသော __get နည်းလမ်းကို ဖန်တီးကြပါစို့။

<?php class Test { private $prop1 = 1; private $prop2 = 2; public function __get($property) { return $this->$property; } } ?>

ဂုဏ်သတ္တိများကိုဖတ်ရန် ၎င်းကိုအသုံးပြုကြပါစို့။

<?php $test = new Test; echo $test->prop1; // 1 ကိုပြမည် echo $test->prop2; // 2 ကိုပြမည် ?>

ဂုဏ်သတ္တိထဲသို့ တစ်ခုခုရေးရန် ကြိုးစားခြင်းသည် အမှားတစ်ခုကို ဖြစ်ပေါ်စေမည်။

<?php $test = new Test; $test->prop1 = 2; // အမှားတစ်ခုကို ပြမည် ?>

ဤအရာသည်ကျွန်ုပ်တို့လိုအပ်သည့်အရာပင်ဖြစ်သည်။ ဂုဏ်သတ္တိကို ဖတ်နိုင်သော်လည်း ရေးသားခြင်းမပြုနိုင်ပါ။

မရှိသောဂုဏ်သတ္တိကို ဖတ်ရန် ကြိုးစားခြင်းသည် အမှားတစ်ခုကို ပြမည်။

<?php $test = new Test; echo $test->prop3; // အမှားတစ်ခုကို ပြမည် ?>

အောက်ပါအသေးစိတ်အချက်ကိုလည်း သတိပြုပါ။ ကျွန်ုပ်တို့သည် ဂုဏ်သတ္တိများကို ဖတ်ရန်သာအသုံးပြုနိုင်အောင် အဟောင်းနည်းလမ်းဖြင့် ပြုလုပ်သောအခါ၊ ဂုဏ်သတ္တိကိုဖတ်ရန် ကျွန်ုပ်တို့သည် getter နည်းလမ်းကို အသုံးပြုခဲ့သည်။

နည်းလမ်းအသစ်တွင်၊ ဂုဏ်သတ္တိများကို အများသူငှာရနိုင်သည့်အတိုင်း တိုက်ရိုက်ဆက်သွယ်ပါမည်။ သို့သော် ၎င်းတို့အတွင်း ရေးသားခြင်းမပြုနိုင်ပါ၊ ၎င်းတို့သည် အများသူငှာ မရနိုင်သကဲ့သို့ဖြစ်နေမည်။

User ကလပ်စ်တစ်ခုကို ပေးထားပါစို့၊ ၎င်း၏ဂုဏ်သတ္တိများကို getter များအသုံးပြု၍ ဖတ်ရန်သာအသုံးပြုနိုင်သည်။

<?php class User { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

ဤကလပ်စ်၏ကုဒ်ကို getter များအစား မှော်နည်းလမ်း __get ကိုအသုံးပြုအောင် ပြန်လည်ပြင်ဆင်ပါ။

မြန်မာ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ဝက်ဘ်ဆိုက် လုပ်ဆောင်ခြင်း၊ ဆန်းစစ်လေ့လာခြင်းနှင့် ပုဂ္ဂလိကပြုပြင်ခြင်းအတွက် ကျွန်ုပ်တို့သည် cookie များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်