Object-oriented scripting language တစ်ခုအနေဖြင့် PHP8 သည်အင်္ဂါရပ်အသစ်များနှင့်တိုးတက်မှုအသစ်များကိုပေးသည်။ အရေးအကြီးဆုံးတိုးတက်မှုများထဲမှတစ်ခုမှာအမျိုးအစားကြေငြာချက်များကိုမြှင့်တင်ခြင်းဖြစ်သည်။ ဤဆောင်းပါးသည် PHP8 ၏အသစ်သောအင်္ဂါရပ်အသစ်မှတစ်ဆင့်ပြန်လာသည့်တည်ငြိမ်သောနည်းလမ်းများကိုမည်သို့ပိုမိုကြေငြာနိုင်ကြောင်းနှင့်သက်ဆိုင်သောကုဒ်များဥပမာများကိုပေးလိမ့်မည်။
အစောပိုင်း PHP ဗားရှင်းများတွင် developer များသည် developer များက Return Value အမျိုးအစားတစ်ခုသို့မဟုတ် method end အမျိုးအစားကိုပြန်လည်ပြုပြင်ခြင်း, ဆိုလိုသည်မှာနည်းလမ်း၏ပြန်လည်နေရာချထားခြင်းသည်ထိုအတန်းအစားသို့မဟုတ်ယင်း၏ subclass ၏ဥပမာတစ်ခုမျှသာမဟုတ်ဘဲတိကျသောလူတန်းစားတစ်ခု၏ဥပမာတစ်ခုသာဖြစ်သည်။
ဤတွင် Static Return အမျိုးအစားကို အသုံးပြု. ငြိမ်သက်နည်းအမျိုးအစားကိုမည်သို့ကြေငြာရမည်ကိုပြသသည့်ဥပမာတစ်ခုမှာဖော်ပြထားသည်။ ကျွန်ုပ်တို့တွင်အသုံးပြုသူ ID ကို အခြေခံ. အသုံးပြုသူရေးရာဥပမာကိုပြန်လည်ရောက်ရှိသော static method combyid ပါ 0 င်သည့်လူတန်းစားဟုခေါ်သောအတန်းအစားရှိသည်ဆိုပါစို့။
class User {
public static function getById(int $id) : static {
// အရIDအသုံးပြုသူအချက်အလက်ကိုမေးမြန်းခြင်း
// ...
// ဖန်တီးUserဥပမာအားဖြင့်ပြန်လာ
return new static();
}
}
အထက်ပါဥပမာတွင် static return type ကိုအသုံးပြုပြီးအသုံးပြုသူဥပမာအားဖြင့် Getbyid နည်းလမ်းကိုကြေငြာခဲ့သည်။ static သော့ချက်စာလုံးကိုအသုံးပြုခြင်းအားဖြင့်နည်းလမ်းကိုခေါ်သည့်အခါအမှန်တကယ်အတန်းအစား၏ပြန်လာသောဥပမာကိုသေချာစွာသေချာစွာသေချာစွာသေချာစွာသေချာစွာလုပ်ပါ။
တည်ငြိမ်သောပြန်လည်ပတ်မှုအမျိုးအစား၏အရေးပါသောအားသာချက်မှာအမွေနှင့် polymorphism နှင့်ပေါင်းစပ်ခြင်းဖြစ်သည်။ ခွဲခြမ်းစိတ်ဖြာမှုတွင်မိဘအတန်းအစား၏တည်ငြိမ်သောနည်းလမ်းကိုကျွန်ုပ်တို့ပယ်ဖျက်သောအခါပြန်လာအမျိုးအစားသည် subclass နှင့်အလိုအလျှောက်လိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်လိမ့်မည်။ ဤတွင်မိဘအတန်းအစားကိုခွဲခြမ်းစိတ်ဖြာခြင်းတွင်စာတန်းထိုးပုံဥပမာတစ်ခုမှာ -
class Admin extends User {
public static function getById(int $id) : static {
// အရIDQuery အုပ်ချုပ်ရေးမှူးသတင်းအချက်အလက်
// ...
// ဖန်တီးAdminဥပမာအားဖြင့်ပြန်လာ
return new static();
}
}
ဒီဥပမာမှာ admin subclass ကိုဖန်တီးပြီး Getbyid Method ကို override လုပ်တယ်။ Return Type ကို admin class ထဲမှ admin အနေဖြင့်ပြန်လည်ကြေငြာခြင်းမရှိသော်လည်းပြန်လာသောဥပမာအားဖြင့်ငြိမ်သက်လာသည့်အမျိုးအစားများအသုံးပြုခြင်းကြောင့်ပြန်လာသောဥပမာအားဖြင့် admin class ၏ဥပမာအားဖြင့်ဖြစ်လိမ့်မည်။
တည်ငြိမ်သော Retter အမျိုးအစားသည်အမွေဆက်ခံခြင်းတွင်ပါ 0 င်ရုံသာမက polmorphisms နှင့်ပေါင်းစပ်ပြီးပိုမိုပြောင်းလွယ်ပြင်လွယ်ရှိသော polymorphisms နှင့်ပေါင်းစပ်ထားသည်။ ကျွန်ုပ်တို့သည်ငြိမ်သက်နည်းများဖြင့်မိဘအတန်းအစား၏ဥပမာတစ်ခုပြန်ပို့နိုင်သည်သို့မဟုတ်အမှန်တကယ်လိုအပ်ချက်များအရကလေးအတန်းအစား၏ဥပမာအားဖြင့်ပြန်ပို့နိုင်သည်။ ဤတွင် static နည်းလမ်းများပေါင်းစပ်ထားသောစက်ရုံပုံစံဥပမာတစ်ခုမှာ -
class Factory {
public static function createUser() : User {
// ဖန်တီးUserဥပမာအားဖြင့်ပြန်လာ
return new User();
}
}
class AdminFactory extends Factory {
public static function createUser() : Admin {
// ဖန်တီးAdminဥပမာအားဖြင့်ပြန်လာ
return new Admin();
}
}
အထက်ပါကုဒ်များတွင်ကျွန်ုပ်တို့သည်စက်ရုံအတန်းကိုစက်ရုံအတန်းကိုဖန်တီးပြီးအသုံးပြုသူ၏ဥပမာအားဖြင့်ပြန်လည်ရောက်ရှိစေသည့် static method createuser ကိုဖန်တီးသည်။ ထို့နောက်ကျွန်ုပ်တို့သည်အမွေဆက်ခံခြင်းဖြင့် adminfactory လူတန်းစားကိုဖန်တီးပြီးအုပ်ချုပ်ရေးမှူးဥပမာတစ်ခုပြန်ပို့ရန်ဖန်တီးမှုနည်းလမ်းကိုပယ်ဖျက်ခဲ့သည်။ တည်ငြိမ်သောပြန်လည်ရောက်ရှိသောအမျိုးအစားများ၏အကူအညီဖြင့်ကျွန်ုပ်တို့သည်မိဘအတန်းအစား၏ငြိမ်နည်းသောနည်းစနစ်များမှလွှဲပြောင်းမှုများကိုအကောင်အထည်ဖော်သည်။
PHP8 ၏တည်ငြိမ်သော Return type feature သည် developer များကိုပိုမိုတိကျသောတည်ငြိမ်သောနည်းလမ်းများနှင့်ပြန်လည်နေရာချထားသည့်နည်းလမ်းများကိုကြေငြာရန်ပိုမိုတိကျသောပြောင်းလွယ်ပြင်လွယ်ရှိသောနည်းလမ်းဖြင့်ပေးသည်။ ၎င်းသည်ပြန်ပို့ခြင်းအမျိုးအစားများကိုကြေငြာရုံသာမကအမွေအနှစ်နှင့် polymorphism နှင့်ပေါင်းစပ်သောအခါပိုမိုပြောင်းလွယ်ပြင်လွယ်များကိုလည်းပိုမိုလွယ်ကူစေသည်။ Static Return အမျိုးအစားကိုအသုံးပြုခြင်းအားဖြင့် developer များသည် static method များ၏ပြန်လည်နေရာချထားရေးအမျိုးအစားများကိုပိုမိုသတ်မှတ်ပြီးသူတို့၏ကုဒ်များ၏ဖတ်နိုင်မှုနှင့်ထိန်းသိမ်းခြင်းကိုတိုးတက်စေနိုင်သည်။