PhP8 မတိုင်မီ polymorphic function parameters တွေကိုကိုင်တွယ်ခြင်းအတော်အတန်ရှုပ်ထွေးသောပြ problem နာဖြစ်ခဲ့သည်။ PHP သည်ပုံမှန်ရိုက်ထားသောဘာသာစကားဖြစ်သည်။ function parameters များသည်မည်သည့်အမျိုးအစားမဆိုတန်ဖိုးများကိုလက်ခံနိုင်သည်။ ဆိုလိုသည်မှာ function ၏ parametermetes အမျိုးအစားများသည်ကိုက်ညီမှုရှိနိုင်သည်။ ၎င်းသည်လုပ်ဆောင်မှုအတွင်း၌ပြုလုပ်ရန်လိုအပ်သည့်အမျိုးအစားစစ်ဆေးမှုများနှင့်ပြောင်းလဲခြင်းလုပ်ငန်းများကိုပြုလုပ်နိုင်သည်။
သို့သော် PHP8 တွင်ပြည်ထောင်စုအမျိုးအစားများကို PhP8 တွင်စတင်မိတ်ဆက်ခဲ့သည်။ ပြည်ထောင်စုအမျိုးအစားများက Parameter သည်ကွဲပြားခြားနားသောတန်ဖိုးမျိုးစုံကိုလက်ခံနိုင်ကြောင်းကျွန်ုပ်တို့ကိုသတ်မှတ်ရန်ခွင့်ပြုသည်။
ဤအယူအဆကိုသရုပ်ဖော်ရန်အောက်ပါအတိုင်းတိကျသောကုဒ်နမူနာဖြစ်သည်။
ကျွန်ုပ်တို့တွင်ပုံစံကွဲပြားခြားနားသောပုံစံများကိုတွက်ချက်ရန်အသုံးပြုသော function calcarea တစ်ခုရှိသည်ဆိုပါစို့။ PHP8 မတိုင်မီကျွန်ုပ်တို့သည်အောက်ပါကုဒ်ကိုရေးနိုင်သည်။
function calcArea($shape, $params) {
switch ($shape) {
case 'rectangle':
$width = $params['width'];
$height = $params['height'];
return $width * $height;
case 'circle':
$radius = $params['radius'];
return 3.14 * $radius * $radius;
case 'triangle':
$base = $params['base'];
$height = $params['height'];
return 0.5 * $base * $height;
}
}
ဤဥပမာတွင်ကျွန်ုပ်တို့သည်ကွဲပြားခြားနားသောပုံသဏ် parameter ာရီများကိုဖြတ်သန်းခြင်းဖြင့်ထိုဒေသကိုတွက်ချက်သည်။ သို့သော် parameter သည် function တစ်ခု၏လုပ်ဆောင်ချက်တစ်ခုဖြစ်သောကြောင့်, function ကိုအတွင်းပိုင်းတွက်ချက်မှုအရကွဲပြားခြားနားသောတွက်ချက်မှုများပြုလုပ်ရန် function ကိုအတွင်းရှိ switch ထုတ်ပြန်ချက်များကိုအသုံးပြုရန်လိုအပ်သည်။
PHP8 တွင်ကျွန်ုပ်တို့သည်ဤကျင့်ထုံးကိုတိုးတက်စေရန်ပြည်ထောင်စုအမျိုးအစားများကိုသုံးနိုင်သည်။ $ ပုံသဏ် parametic ာန်အမျိုးအစားသည် 'စတုဂံ' '|' Triangle's '|' တြိဂံ 'အမျိုးအစားကို actiretive array တစ်ခုအဖြစ်သတ်မှတ်ပါ။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် switch ထုတ်ပြန်ချက်များကို function အတွင်းရှိ 0 င်ရောက်ခြင်းကိုချန်လှပ်ထားပြီး parameters ၏နည်းလမ်းများနှင့်ဂုဏ်သတ္တိများကိုတိုက်ရိုက်သုံးနိုင်သည်။
function calcArea(string $shape, array $params) {
if ($shape === 'rectangle') {
$width = $params['width'];
$height = $params['height'];
return $width * $height;
} elseif ($shape === 'circle') {
$radius = $params['radius'];
return 3.14 * $radius * $radius;
} elseif ($shape === 'triangle') {
$base = $params['base'];
$height = $params['height'];
return 0.5 * $base * $height;
}
}
ဤအကောင်အထည်ဖော်မှုအသစ်တွင်အမျိုးအစားမှတ်စုများကို function's parameter ည့်သည်များနှင့်လုပ်ဆောင်ချက်များကိုအပိုဆောင်းအမျိုးအစားများနှင့်ပြောင်းလဲခြင်းလုပ်ငန်းများမလုပ်ဘဲတိုက်ရိုက်ကြည့်ရှုရန် function ၏ parameter စာရင်းသို့ထည့်သွင်းရန်လိုအပ်သည်။ ဤသည် code ကိုပိုပြီးတိကျစွာနှင့်နားလည်ရန်လွယ်ကူစေသည်။
စုစုပေါင်း PHP8 ၏ပြည်ထောင်စုအမျိုးအစားများသည် polymorphic function parameters တွေကိုကိုင်တွယ်ရန်ပိုမိုကောင်းမွန်သောနည်းလမ်းဖြင့်ကျွန်ုပ်တို့ကိုပိုမိုကောင်းမွန်စေသည်။ function parameter စာရင်းတွင်အမျိုးအစားများကိုမျိုးစုံကိုသတ်မှတ်ခြင်းဖြင့်ကျွန်ုပ်တို့သည် function အတွင်းရှိ parameterse ၏ဂုဏ်သတ္တိများနှင့်နည်းလမ်းများကိုတိုက်ရိုက်ဝင်ရောက်နိုင်ပြီး function အတွင်းရှိ methods များကိုတိုက်ရိုက်ရယူနိုင်သည်။ ၎င်းသည် code ကိုပိုမိုတိကျသောအတိုချုပ်, ဖတ်နိုင်သော, code ၏ရှုပ်ထွေးမှုကိုလျှော့ချနိုင်သည်။