PHP OOP တွင် Setter နှင့် Getter ၏ အကျိုးကျေးဇူးများ

ယခင်သင်ခန်းစာတွင် ကျွန်ုပ်တို့သည် property တစ်ခုစီအတွက် getter နှင့် setter များ ပြုလုပ်ခဲ့ပါသည်။ ဤကဲ့သို့ရှုပ်ထွေးမှုများ မည်ကဲ့သို့လိုအပ်သနည်း ဟု မေးခွန်းထွက်ပေါ်လာနိုင်ပါသည်။ အဘယ်ကြောင့်ဆိုသော် properties များကို private အစား public ပြုလုပ်ပါက �လားတူအကျိုးသက်ရောက်မှုကို ရရှိနိုင်မည်ဖြစ်သည်။

ပြဿနာမှာ getter နှင့် setter များတွင် အားသာချက်ရှိပါသည်- property တစ်ခုကိုဝင်ရောက်အသုံးပြုခြင်းမပြုမီ အတည်ပြုချက်အချို့ကို လုပ်ဆောင်နိုင်ပါသည်။ ဥပမာအားဖြင့်၊ ကျွန်ုပ်တို့၏ကိစ္စတွင် အမည်နှင့်သူမျိုးရင်းအမည်ကိုရေးသားသည့်အခါ တန်ဖိုးအသစ်သည် ဗလာစာကြောင်းမဟုတ်ကြောင်း စစ်ဆေးနိုင်ပါသည်။

php<?php
  class User {
    private $name;
    private $surn;
    
    public function setName($name) {
      if (strlen($name) > 0) {
        $this->name = $name;
      } else {
        echo 'name is incorrect';
      }
    }
    
    public function setSurn($surn) {
      if (strlen($surn) > 0) {
        $this->surn = $surn;
      } else {
        echo 'surn is incorrect';
      }
    }
    
    public function getName() {
      return $this->name;
    }
    
    public function getSurn() {
      return $this->surn;
    }
  }
?>

ဤအရာသည် မည်သို့အလုပ်လုပ်သည်ကို စစ်ဆေးကြည့်ရအောင်။ ပထမဦးစွာ class ၏ object တစ်ခုကို ဖန်တီးပါမည်။

php<?php
  $user = new User();
?>

ယခု မှန်ကန်သောတန်ဖိုးကို ရေးသားကြည့်ပါမည်။

php<?php
  $user->setName('john');
?>

ယခု မမှန်ကန်သောတန်ဖိုးကို ရေးသားကြည့်ပါမည်။

php<?php
  $user->setName(''); // error
?>
Задание 1

Employee class ရှိ အသက် setter တွင် အသက်သည် 0 မှ 120 ကြားရှိရမည်ဟူသော စစ်ဆေးချက်ကို ပြုလုပ်ပါ။

Задание 2

Employee class ရှိ လစာ getter တွင် လစာကိုဖတ်သည့်အခါ ၎င်း၏တန်ဖိုး အဆုံးတွင် ဒေါ်လာသင်္ကေတကို ထည့်သွင်းပေးရန် ပြုလုပ်ပါ။