PHP တွင် OOP အတွက် မရှိသောဂုဏ်သတ္တိကိုဖတ်ခြင်း
မရှိသောဂုဏ်သတ္တိထဲသို့ ဒေတာများရေးကြည့်ကြပါစို့ - ဤအရာသည် အလုပ်လုပ်ပါလိမ့်မည်။
<?php
$test = new Test;
$test->prop3 = 3; // 3 ကိုရေးပါ
echo $test->prop3; // 3 ကိုပြသပါမည်
?>
ကျွန်ုပ်တို့သည် မရှိသောဂုဏ်သတ္တိများထဲသို့ ရေးခွင့်မပြုလိုပါ။
ထို့အပြင်၊ ဂုဏ်သတ္တိ prop1 နှင့်
prop2 များထဲသို့သာ ရေးခွင့်ပြုလိုပါသည်။
ဤအရာကို လွယ်ကူစွာပြုလုပ်နိုင်ပါသည် - __set နည်းလမ်းထဲတွင်
သင့်လျော်သောအခြေအနေကို ထည့်သွင်းရန်လိုအပ်သည်။
<?php
class Test
{
private $prop1;
private $prop2;
public function __set($property, $value)
{
// အခြေအနေတစ်ခုရေးပါ။
if ($property == 'prop1' or $property == 'prop2') {
$this->$property = $value;
}
}
public function __get($property)
{
return $this->$property;
}
}
?>
ထိုကဲ့သို့သောဂုဏ်သတ္တိများစွာရှိပါက ၎င်းတို့အားလုံးကို အခြေအနေထဲတွင် ဖော်ပြခြင်းသည် အဆင်မပြေလှပါ။
ရေးခွင့်ပြုထားသောဂုဏ်သတ္တိများကို array ထဲသို့ရေးပါမည်နှင့်
in_array လုပ်ဆောင်ချက်ကိုသုံး၍ ထို array အတွင်း ဂုဏ်သတ္တိရှိမရှိ
စစ်ဆေးပါမည်။
<?php
class Test
{
private $prop1;
private $prop2;
public function __set($property, $value)
{
$properties = ['prop1', 'prop2']; // ခွင့်ပြုထားသောဂုဏ်သတ္တိများ
if (in_array($property, $properties)) {
$this->$property = $value;
}
}
public function __get($property)
{
return $this->$property;
}
}
?>