PHP OOP တွင် မှော်ဆန်သော နည်းလမ်းဖြင့် ဂုဏ်သတ္တိများရယူခြင်း
ကျွန်ုပ်တို့ ဆွေးနွေးသွားမည့် နောက်ထပ် မှော်ဆန်သော နည်းလမ်းကို __get ဟု ခေါ်ပါသည်။ ၎င်းနည်းလမ်းသည်
ကိုယ်ပိုင်သို့မဟုတ် ကာကွယ်ထားသော ဂုဏ်သတ္တိတစ်ခု၏ တန်ဖိုးကို ဖတ်ရှုရန် ကြိုးစားသည့်အခါတွင် အလုပ်လုပ်ပါသည်။
မည်သည့် class တွင်မဆို __get နည်းလမ်းကို အကောင်အထည်ဖော်ပါက၊ မတည်ရှိသော သို့မဟုတ် ဝှက်ထားသော
ဂုဏ်သတ္တိများသို့ ဆက်သွယ်မှုအားလုံးကို ဤနည်းလမ်းမှ ကိုင်တွယ်ဖြေရှင်းပေးပါလိမ့်မည်။
ထိုသို့ဖြစ်စဉ်တွင် PHP သည် အလိုအလျောက် တောင်းဆိုထားသော ဂုဏ်သတ္တိ၏ အမည်ကို ဤနည်းလမ်၏ ပထမဆုံး parameter အဖြစ် ပို့ပေးမည်ဖြစ်ပြီး၊ ဤနည်းလမ်းမှ ပြန်လာသော တန်ဖိုးကို ဆက်သွယ်ထားသော ဂုဏ်သတ္တိ၏ တန်ဖိုးအဖြစ် သဘောထားမည်ဖြစ်သည်။
အခုချိန်ထိ ၎င်းအလုပ်လုပ်ပုံကို သိပ်မရှင်းလင်းသေးဘဲ ရှိနိုင်သောကြောင့် လက်တွေ့ဥပမာတစ်ခုကို ကြည့်ကြရအောင်။ ကျွန်ုပ်တို့တွင်
ဤကဲ့သို့သော Test class တစ်ခုရှိသည်ဆိုပါစို့။ ၎င်းတွင် ကိုယ်ပိုင်နှင့် အများသုံး ဂုဏ်သတ္တိများပါဝင်သည်။
<?php
class Test
{
public $prop1 = 1; // အများသုံး ဂုဏ်သတ္တိ
private $prop2 = 2; // ကိုယ်ပိုင် ဂုဏ်သတ္တိ
}
?>
ကျွန်ုပ်တို့၏ class ထဲသို့ မှော်ဆန်သော နည်းလမ်း __get ကို ထည့်ကြည့်ကြပါစို့။ အစပိုင်းတွင် ဆက်သွယ်ထားသော
�ုဏ်သတ္တိ၏ အမည်ကို ပြန်ပေးရုံသာ ပြုလုပ်ပါမည်။
<?php
class Test
{
public $prop1 = 1;
private $prop2 = 2;
public function __get($property)
{
return $property; // ဂုဏ်သတ္တိ၏ အမည်ကို ပြန်ပေးခြင်း
}
}
?>
ဖန်တီးထားသော မှော်ဆန်သည့် နည်းလမ်း၏ အလုပ်လုပ်ပုံကို စမ်းသပ်ကြည့်ကြပါစို့။ ဂုဏ်သတ္တိ အမျိုးအစား သုံးမျိုးကို ဆက်သွယ်ကြည့်ပါမည်။ အများသုံး ဂုဏ်သတ္တိ၊ ကိုယ်ပိုင်ဂုဏ်သတ္တိနှင့် မတည်ရှိသော ဂုဏ်သတ္တိတို့ဖြစ်သည်။
<?php
$test = new Test;
// အများသုံး ဂုဏ်သတ္တိကို ဆက်သွယ်ခြင်း:
echo $test->prop1; // 1 ကို ပြသမည် - ဆိုလိုသည်မှာ ဂုဏ်သတ္တိ၏ တန်ဖိုးဖြစ်သည်
// ကိုယ်ပိုင် ဂုဏ်သတ္တိကို ဆက်သွယ်ခြင်း:
echo $test->prop2; // 'prop2' ကို ပြသမည် - ဂုဏ်သတ္တိ၏ အမည်ဖြစ်သည်
// မတည်ရှိသော ဂုဏ်သတ္တိကို ဆက်သွယ်ခြင်း:
echo $test->prop3; // 'prop3' ကို ပြသမည် - ဂုဏ်သတ္တိ၏ အမည်ဖြစ်သည်
?>
သင်မြင်တွေ့ရသည့်အတိုင်း၊ ကျွန်ုပ်တို့၏ မှော်ဆန်သော နည်းလမ်းသည် ကိုယ်ပိုင်နှင့် မတည်ရှိသော ဂုဏ်သတ္တိများသို့ ဆက်သွယ်မှုကို �ုံ့ပြန်သော်လည်း၊ အများသုံး ဂုဏ်သတ္တိများသို့ ဆက်သွယ်မှုကိုမူ လျစ်လျူရှုထားပါသည်။ ၎င်းတို့သည် ယခင်ကကဲ့သို့ပင် အလုပ်လုပ်နေဆဲဖြစ်သည်။