PHP ရှိ OOP တွင် အစားထိုးနည်းလမ်းတစ်ခုကို ခေါ်ယူခြင်း

အစားထိုးသည့်အခါ၊ ဆင်းသက်လာသူသည် ၎င်း၏မိဘ၏ အစားထိုးနည်းလမ်းကို ရယူနိုင်စွမ်းဆုံးရှုံးသွားသည်။ သို့သော်၊ ၎င်းကို ရယူနိုင်ဆဲပင်။ ၎င်းကို <parent သော့ချက်စကားလုံးကို အသုံးပြု၍ လုပ်ဆောင်သည်၊ ထိုသော့ချက်စကားလုံးသည် မိဘအတန်းကို ရည်ညွှန်းသည်။

ဥပမာတစ်ခုကို ကြည့်ရှုပါ၊ ကျွန်ုပ်တို့သည် မိဘနည်းလမ်းတစ်ခုသို့ ဝင်ရောက်ခွင့် လိုအပ်သည့်အချိန်မျိုး ဖြစ်နိုင်သည်။ ကျွန်ုပ်တို့တွင် အောက်ပါ မိဘအတန်းရှိသည်ဟု ဆိုကြပါစို့။

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

ကျွန်ုပ်တို့သည် ဆင်းသက်လာသည့်အတန်းတွင် မိဘ၏နည်းလမ်းကို အစားထိုးခဲ့သည်ဟု ဆိုကြပါစို့။

php<?php
  class Student extends User {
    public function setName($name) {
      if (strlen($name) > 0) {
        $this->name = $name;
      } else {
        echo 'student name error';
      }
    }
  }
?>

အစားထိုးထားသော နည်းလမ်းတွင်၊ အခြေအနေမှန်ကန်ပါက လက်တွေ့တွင် မိဘနည်းလမ်း၏ကုဒ်ကို လုပ်ဆောင်သည်ကို သတိပြုမိမည်။ ဤသို့ဆိုလျှင် မလိုအပ်သော ကုဒ်ပုံတူပွားခြင်း ဖြစ်ပေါ်နေပါသည်။

မိဘနည်းလမ်းကို ခေါ်ယူခြင်းဖြင့် ထိုပုံတူပွားခြင်းမှ လွတ်မြောက်နိုင်ပါသည်။ ဤသို့လုပ်ဆောင်ကြပါစို့။

php<?php
  class Student extends User {
    public function setName($name) {
      if (strlen($name) > 0) {
        parent::setName($name); // မိဘ၏နည်းလမ်း
      } else {
        echo 'student name error';
      }
    }
  }
?>
Задание 1

အောက်ပါကုဒ်ကို ပေးထားသည်။

php<?php
  class User {
    private $age;
    
    public function setAge($age) {
      if ($age >= 0) {
        $this->age = $age;
      } else {
        echo 'need age more 0';
      }
    }
  }
  
  class Employee extends User {
    public function setAge($age) {
      if ($age <= 120) {
        if ($age >= 0) {
          $this->age = $age;
        } else {
          echo 'need age more 0';
        }
      } else {
        echo 'need age less 120';
      }
    }
  }
?>

<Employee အတန်းတွင်၊ မိဘ၏ မူရင်းနည်းလမ်းကို အသုံးပြု၍ အသက် setter ကို ရိုးရှင်းအောင် ပြင်ဆင်ပါ။