PHP တွင် OOP အတွက် မရှိသောဂုဏ်သတ္တိကိုဖတ်ခြင်း

မရှိသောဂုဏ်သတ္တိထဲသို့ ဒေတာများရေးကြည့်ကြပါစို့ - ဤအရာသည် အလုပ်လုပ်ပါလိမ့်မည်။

index.php<?php
  $test = new Test;
  
  $test->prop3 = 3; // 3 ကိုရေးပါ
  echo $test->prop3; // 3 ကိုပြသပါမည်
?>

ကျွန်ုပ်တို့သည် မရှိသောဂုဏ်သတ္တိများထဲသို့ ရေးခွင့်မပြုလိုပါ။ ထို့အပြင်၊ ဂုဏ်သတ္တိ prop1 နှင့် prop2 များထဲသို့သာ ရေးခွင့်ပြုလိုပါသည်။

ဤအရာကို လွယ်ကူစွာပြုလုပ်နိုင်ပါသည် - __set နည်းလမ်းထဲတွင် သင့်လျော်သောအခြေအနေကို ထည့်သွင်းရန်လိုအပ်သည်။

Test.php<?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 အတွင်း ဂုဏ်သတ္တိရှိမရှိ စစ်ဆေးပါမည်။

Test.php<?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;
    }
  }
?>