လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP overloading and application ၏အခြေခံဗဟုသုတကိုခြုံငုံသုံးသပ်ချက်

PHP overloading and application ၏အခြေခံဗဟုသုတကိုခြုံငုံသုံးသပ်ချက်

gitbox 2025-06-28

PHP Reload ဆိုတာဘာလဲ

PHP သည်တက်ကြွသောစာရိုက်သည့်ဘာသာစကားဖြစ်သည်။ ဆိုလိုသည်မှာ variable များသည် scripts များကွပ်မျက်ခံရသောအခါ parameter အမျိုးအစားများသို့မဟုတ်ပြန်လည်အမျိုးအစားများလည်းမရှိပါ။ PHP overload သည် Runtime တွင်အတန်း၏ဂုဏ်သတ္တိများနှင့်နည်းလမ်းများကိုပြုပြင်ပြောင်းလဲခြင်းသို့မဟုတ်ပြုပြင်ခြင်းကိုရည်ညွှန်းသည်။

PHP သည်အဓိက overload ပုံစံနှစ်ခုကိုထောက်ပံ့သည်။

1 ။ Attribute overloading - Magic Methods __GET () နှင့် __set) နှင့် __set () နှင့် __set) ကို အတန်း၏ဂုဏ်သတ္တိများကိုပြောင်းလဲရန်သို့မဟုတ်သတ်မှတ်ရန်အသုံးပြုနိုင်သည်။

2 ။ Method Overloading - Magic Methods __call () နှင့် __callstatic) နှင့် __callstatic () နှင့် __CallStatic () နှင့် __callstatic () နှင့် __CALLSTATITATION () ကို သုံးနိုင်သည်။

အိမ်ခြံမြေ overload

__ ဂျက် () နည်းလမ်း

ပိုင်ဆိုင်မှုမရှိသောပိုင်ဆိုင်မှုများကိုရယူသည့်အခါ __GET () နည်းလမ်းကိုခေါ်သည်။ ဒီမှော်အတတ်အားဖြင့် Properties ကို dvonatically ထည့်သွင်းနိုင်ပါတယ်။

 
class Test {
  private $data = [
    'name' => 'Tom',
    'age' => 18
  ];

  public function __get($name) {
    if (isset($this->data[$name])) {
      return $this->data[$name];
    }
    return null;
  }
}

$test = new Test();
echo $test->name;  // ထုတ်လုပ်ခြင်း Tom
echo $test->age;   // ထုတ်လုပ်ခြင်း 18
echo $test->gender;  // ထုတ်လုပ်ခြင်း null

__GET () နည်းလမ်းသည် parameter $ နာမကို လက်ခံသည်, ၎င်းသည် attribute နာအမည်ဖြစ်သည်။ ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုမရှိပါက Null ပြန်လာသည်။

__s ကြည့်ခြင်း () နည်းလမ်း

မဆိုမစသည့်ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုတစ်ခုအတွက်တန်ဖိုးတစ်ခုသတ်မှတ်သည့်အခါ __set () နည်းလမ်းကိုဖြစ်ပေါ်စေသည်။ ဒီမှော်အတတ်ကိုတဆင့်, သငျသညျ attribute နှင့်၎င်း၏တန်ဖိုးကို dvonatically add နိုင်ပါတယ်။

 
class Test {
  private $data = [];

  public function __set($name, $value) {
    $this->data[$name] = $value;
  }
}

$test = new Test();
$test->name = 'Tom';
echo $test->name;  // ထုတ်လုပ်ခြင်း Tom

__s ဆိုသောနည်းလမ်း () နည်းလမ်းသည် parameters နှစ်ခုကိုလက်ခံသည်။ $ name (attribute name) နှင့် $ တန်ဖိုး (attribute value)

နည်းလမ်း overload

__call () နည်းလမ်း

မတည်ရှိသည့်နည်းလမ်းကိုမခေါ်သည့်အခါ __call () နည်းလမ်းကိုခေါ်သည်။ ဒီမှော်နည်းလမ်းဖြင့်နည်းလမ်းများကို dynamically ထည့်သွင်းနိုင်သည်။

 
class Test {
  public function __call($name, $arguments) {
    if ($name == 'add') {
      return array_sum($arguments);
    }
    return null;
  }
}

$test = new Test();
echo $test->add(1, 2, 3);  // ထုတ်လုပ်ခြင်း 6
echo $test->subtract(10, 2);  // ထုတ်လုပ်ခြင်း null

__call () နည်းလမ်းသည် parameter နှစ်ခုကိုလက်ခံသည်။ $နာသည့်အမည် (နည်းလမ်းအမည်) နှင့် $ အငြင်းပွားမှုများ (နည်းလမ်း parameters) ။ အကယ်. နည်းလမ်းမတည်ရှိပါက Null ပြန်လာသည်။

__callstatic () နည်းလမ်း

မတည်ရှိသည့်တည်ငြိမ်သောနည်းလမ်းဟုမခေါ်ပါ ဤနည်းလမ်းသည် __CAST () နည်းလမ်းနှင့်ဆင်တူသည်။

 
class Test {
  public static function __callStatic($name, $arguments) {
    if ($name == 'add') {
      return array_sum($arguments);
    }
    return null;
  }
}

echo Test::add(1, 2, 3);  // ထုတ်လုပ်ခြင်း 6
echo Test::subtract(10, 2);  // ထုတ်လုပ်ခြင်း null

__CALLATITATIC () နည်းလမ်းသည် __CAST () နည်းလမ်းနှင့်ဆင်တူသော်လည်းတည်ငြိမ်သောနည်းလမ်းများနှင့်သာသက်ဆိုင်သည်။