PHP 8 ကို Beta စမ်းသပ်မှု စတင်ပါပြီ။

မိတ်ဆက်ပေးသည်။ PHP 8 ပရိုဂရမ်းမင်းဘာသာစကား၏ ဌာနခွဲအသစ်၏ ပထမဆုံး beta ဖြန့်ချိမှုဖြစ်သည်။ ဖြန့်ချိမှုကို နိုဝင်ဘာလ 26 ရက်နေ့တွင် ပြုလုပ်ရန် စီစဉ်ထားသည်။ တစ်ချိန်တည်းမှာပင်၊ PHP 7.4.9၊ 7.3.21 နှင့် မှန်ကန်သောထုတ်ဝေမှုများ
7.2.33၊ စုဆောင်းထားသော အမှားများနှင့် အားနည်းချက်များကို ဖယ်ရှားပေးသည်။

အဓိက တီထွင်ဆန်းသစ်မှုများ PHP 8-

  • ပါဝင် JIT compilerကုန်ထုတ်စွမ်းအားကို တိုးတက်စေမည့် အသုံးချမှု၊
  • ထောက်ပံ့ အမည်ပေးထားသော function arguments သည် သင့်အား အမည်များနှင့်ဆက်စပ်သော function သို့တန်ဖိုးများကိုဖြတ်သန်းခွင့်ပြုသည်၊ i.e. မည်သည့်အစီအစဥ်တွင်မဆို ငြင်းခုံမှုများကို ကျော်ဖြတ်နိုင်ပြီး ရွေးချယ်နိုင်သော အကြောင်းပြချက်များကို သတ်မှတ်နိုင်သည်။ ဥပမာ၊ "array_fill(start_index: 0၊ နံပါတ်: 100၊ တန်ဖိုး- 50)"။
  • ခေါ်ဆိုသောအခါတွင် နည်းလမ်းများ ခွင့်ပြု “?” အော်ပရေတာကို အသုံးပြု၍ ခေါ်ဆိုမှုကို စတင်ခွင့်ပြုသည့် နည်းလမ်းရှိမှသာ “null” တန်ဖိုးကို ပြန်ပေးရန်အတွက် မလိုအပ်သော စစ်ဆေးမှုများကို ရှောင်ရှားသည်။ ဥပမာ၊ "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • ထောက်ပံ့ သမဂ္ဂအမျိုးအစားများအမျိုးအစား နှစ်မျိုး သို့မဟုတ် ထို့ထက်ပိုသော စုစည်းမှုများကို သတ်မှတ်ခြင်း (ဥပမာ၊ “အများပြည်သူဆိုင်ရာ လုပ်ဆောင်မှု foo(Foo|Bar $input): int|float;”)။
  • ထောက်ပံ့ ဂုဏ်တော်များ Docblock syntax ကို အသုံးမပြုဘဲ အတန်းများနှင့် မက်တာဒေတာ (အမျိုးအစား အချက်အလက်များ ကဲ့သို့သော) ချိတ်ဆက်ရန် ခွင့်ပြုသော (မှတ်ချက်များ)။
  • စကားအသုံးအနှုန်းကို ထောက်ခံသည်။ မီးခြစ်ခလုတ်နှင့်မတူဘဲ၊ ၎င်းသည် တန်ဖိုးများကို ပြန်ပေးနိုင်သည်၊ ပေါင်းစပ်အခြေအနေများကို ပံ့ပိုးပေးနိုင်သည်၊ တင်းကျပ်သောအမျိုးအစား နှိုင်းယှဉ်မှုများကို အသုံးပြုကာ "break" သတ်မှတ်ချက်ကို မလိုအပ်ပါ။

    $result = match($ input) {
    0 => "ဟယ်လို"၊
    '1', '2', '3' => "ကမ္ဘာ"၊
    };

  • အတိုကောက်အထားအသို class အဓိပ္ပါယ်ဖွင့်ဆိုချက်များသည် constructor နှင့် properties ၏အဓိပ္ပါယ်ကို ပေါင်းစပ်နိုင်စေပါသည်။
  • အသစ်ပြန်အမ်းအမျိုးအစား - တည်ငြိမ်သော.
  • အမျိုးအစားအသစ် - ရောထွေးလုပ်ဆောင်ချက်တစ်ခုသည် မတူညီသောအမျိုးအစားများ၏ ကန့်သတ်ဘောင်များကို လက်ခံခြင်းရှိမရှိ ဆုံးဖြတ်ရန် အသုံးပြုနိုင်သည်။
  • စကားရပ် ပစ်ခြင်း ခြွင်းချက်များကိုကိုင်တွယ်ရန်။
  • WeakMap အမှိုက်စုဆောင်းစဉ်အတွင်း စွန့်လွှတ်နိုင်သော အရာများကို ဖန်တီးရန် (ဥပမာ၊ မလိုအပ်သော ကက်ရှ်များကို သိမ်းဆည်းရန်)။
  • အခွင့်အရေး အရာဝတ္ထုများ (get_class()) ဟုခေါ်သော တူညီသောအသုံးအနှုန်းအတွက် “::class” ကို အသုံးပြုခြင်း။
  • အခွင့်အရေး ကိန်းရှင်များနှင့် မသက်ဆိုင်သော ခြွင်းချက်များ၏ ဖမ်းဆုပ်မှုဆိုင်ရာ အဓိပ္ပါယ်ဖွင့်ဆိုချက်များ။
  • အခွင့်အရေး လုပ်ဆောင်ချက် ကန့်သတ်ချက်များစာရင်းရှိ နောက်ဆုံးဒြပ်စင်ပြီးနောက် ကော်မာတစ်ခုချန်ထားပါ။
  • အင်တာဖေ့စ်အသစ် ကြိုးတပ်လို့ရတယ်။ string အမျိုးအစားများ သို့မဟုတ် ဒေတာကို string တစ်ခုအဖြစ်သို့ ပြောင်းလဲနိုင်သည့် မည်သည့် string အမျိုးအစားကိုမဆို ခွဲခြားသတ်မှတ်ရန် ( __toString() method ကိုရရှိနိုင်သည်)။
  • အင်္ဂါရပ်အသစ် str_contains()string တစ်ခု၏အစနှင့်အဆုံးတွင်ကိုက်ညီမှုများကိုစစ်ဆေးရန်အတွက် str_starts_with() နှင့် str_ends_with() ၏လုပ်ဆောင်ချက်များကိုဆုံးဖြတ်ရန်အတွက် strpos ၏ရိုးရှင်းသော analogue တစ်ခု။
  • လုပ်ဆောင်ချက်ကို ထည့်သွင်းထားသည်။ fdiv()သုညဖြင့် ပိုင်းခြားသည့်အခါ အမှားအယွင်းမဖြစ်စေဘဲ ခွဲခြင်းလုပ်ငန်းကို လုပ်ဆောင်သည်။
  • ပြောင်းသွားတယ်။ string joining logic။ ဥပမာအားဖြင့်၊ echo "sum:" ဟူသော စကားရပ်။ $a + $b' ကို ယခင်က 'echo ("sum:" . $a) + $b' ဟု အဓိပ္ပာယ်ရပြီး PHP 8 တွင် 'echo "sum:" ဟု သဘောထားပါမည်။ ($a + $b)'။
  • တင်းကျပ် ဂဏန်းသင်္ချာနှင့် ဘစ်လုပ်ဆောင်ချက်များကို စစ်ဆေးခြင်း ဥပမာ၊ စကားရပ်များ "[] % [42]" နှင့် "$object + 4" တို့သည် အမှားအယွင်းဖြစ်သွားလိမ့်မည်။
  • ဟိုဟာ မတူညီသော အပြေးများတစ်လျှောက် ထပ်တူတန်ဖိုးများကို ထိန်းသိမ်းထားသည့် တည်ငြိမ်သော စီခြင်း အယ်လဂိုရီသမ်။
  • source: opennet.ru

မှတ်ချက် Add