အင်တာနက်လျင်မြန်စွာဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူ Web Development သည်ခေတ်သစ်လူ့အဖွဲ့အစည်း၏အရေးကြီးသောအစိတ်အပိုင်းတစ်ခုဖြစ်လာသည်။ ပရိုဂရမ်ဘာသာစကားဘာသာစကားဖြင့် PHP သည် 0 က်ဘ်အပလီကေးရှင်းများဖွံ့ဖြိုးတိုးတက်ရေးတွင် PHP ကိုကျယ်ကျယ်ပြန့်ပြန့်လေ့လာရန်လွယ်ကူသည်။ PHPT ၏နောက်ဆုံးပေါ်မူကွဲအနေဖြင့် PHP8 သည် 0 က်ဘ်တီထွင်မှုကိုပိုမိုထိရောက်စေရန်, ဤဆောင်းပါးသည် PHP8 ၏ထူးခြားချက်များအသစ်များကိုမိတ်ဆက်ပေးပြီး၎င်း၏နောက်ခံဖွံ့ဖြိုးရေးအခြေခံမူများကိုနက်နက်နဲနဲလေ့လာလိမ့်မည်။
JIT Compiler သည် PHP8 မှမိတ်ဆက်ပေးသောအရေးကြီးသောအင်္ဂါရပ်တစ်ခုဖြစ်သည်။ ၎င်းသည် PHP code ကိုအချိန်မှန်ဖြင့်အချိန်မှန်ကိုဒေသတွင်းစက်ကုဒ်နှင့်ကွပ်မျက်ခြင်းထိရောက်မှုကိုတိုးတက်စေရန် cache လုပ်နိုင်သည်။ ယခင်ဗားရှင်းများတွင် PHP သည် Jehneter မှတစ်ဆင့် code ကိုကွပ်မျက်ခံရသည်။ JIT Compiler ၏နိဒါန်းသည် PHP ၏ကွပ်မျက်မြန်နှုန်းကိုများစွာတိုးတက်စေခဲ့သည်။
အောက်ဖော်ပြပါအချက်သည်နမူနာကုဒ်ဖြစ်သည်။
<?php $code = <<<CODE $i = 0; while($i < 1000000000) { $i++; } CODE; $startTime = microtime(true); eval($code); $endTime = microtime(true); $executionTime = $endTime - $startTime; echo "ကွပ်မျက်အချိန်: {$executionTime}စက်ဏန့်";
PHP7 ဗားရှင်းတွင်အထက်ပါကုဒ်ကို execute လုပ်ရန် 3 စက္ကန့်ခန့်ကြာသည်။ PHP8 ဗားရှင်းတွင် JIT compiler ၏ထို့အပြင်အနေဖြင့် Execution Time ကို 1 စက္ကန့်ထက်နည်းစေရန်တိုတောင်းနိုင်သည်။
PHP8 သည် attribute variable အမျိုးအစားကြေငြာချက်ကိုမိတ်ဆက်ပေးသည်။ developer များက attribute များ၏အချက်အလက်အမျိုးအစားများကိုကန့်သတ်ရန်အတန်း၏ attribute များကိုအတန်းအစား၏ attribute များမတိုင်မီအမျိုးအစားကြေငြာချက်များထည့်နိုင်သည်။
အောက်ဖော်ပြပါအချက်သည်နမူနာကုဒ်တစ်ခုဖြစ်သည်။
<?php class User { public int $id; public string $name; public function __construct(int $id, string $name) { $this-> ID = $ ID; $ -> အမည် = $ အမည်; } } $ အသုံးပြုသူ = အသုံးပြုသူအသစ် (1, "John Doe"), ECHO $ user-> ID; // output: 1 ECHO $ user-> အမည်, // output: John Doe
အထက်ပါကုဒ်များတွင် INT နှင့် string type အမျိုးအစားများကို အသုံးပြု. $ ID attribute သည်ကိန်းအမျိုးအစားတစ်ခုဖြစ်ပြီး $ name attribute သည် string type တစ်ခုဖြစ်သည်။ ၎င်းသည် Runtime တွင်အမှားအယွင်းများကိုရှောင်ရှားနိုင်ပြီးကုဒ်၏ယုံကြည်စိတ်ချရမှုကိုမြှင့်တင်နိုင်သည်။
PHP8 သည် Multiplexed အကိုင်းအခက်များအဘို့အပွဲဖော်ပြချက်တစ်ခုထည့်သွင်းထားသည်။ ၎င်းသည် switch statement နှင့်ဆင်တူသော်လည်းပိုမိုတိကျသောနှင့်ပြောင်းလွယ်ပြင်လွယ် syntax ကိုထောက်ပံ့ပေးသည်။
အောက်ဖော်ပြပါအချက်သည်နမူနာကုဒ်တစ်ခုဖြစ်သည်။
<?php function getGrade(int $score): string { return match(true) { $score >= 90 = >> 'A', $ ရမှတ်> = 80 => 'b', $ ရမှတ်> = 70 => 'C', $ ရမှတ်> = 60 => 'D', ပုံမှန် => 'f', }; } ECHO GetGrade (85); // output: ခ
အထက်ပါကုဒ်တွင်ကျွန်ုပ်တို့သည်မတူညီသောရမှတ်များနှင့်အညီသက်ဆိုင်ရာအဆင့်ကိုပြန်ပို့သည်။ ပွဲစဉ်အသုံးအနှုန်းများကိုအသုံးပြုခြင်းသည်ရိုးရာ IF အခြားသောဖွဲ့စည်းပုံကိုအစားထိုးနိုင်သည်။
PHP8 သည် Fiber Correutines များကိုမိတ်ဆက်ပေးပြီးပိုမိုထိရောက်သောနှင့်ပြောင်းလွယ်ပြင်လွယ်သောတစ်ပြိုင်နက်တည်းပရိုဂရမ်နည်းကိုထောက်ပံ့ပေးသည်။ Fiber Coroutines သည်ပေါ့ပါးသောချည်များဖြစ်ပြီးထိုအချိန်က Coroutines မျိုးစုံကိုတစ်ချိန်တည်းတွင်တူညီသောလုပ်ငန်းခွင်၌တစ်ချိန်တည်းတွင်လုပ်ဆောင်နိုင်ပြီး thread အခြေအနေတွင် switching ကိုရှောင်ရှားနိုင်သည်။
အောက်ဖော်ပြပါအချက်သည်ဖိုင်ဘာ Coroutines ကိုမည်သို့အသုံးပြုရမည်ကိုပြသသောနမူနာကုဒ်ဖြစ်သည်။
<?php function printCount() { for($i = 1; $i <= 5; $i++) { echo $i . "\n"; Fiber::yield(); } } $fiber = new Fiber('printCount'); while($fiber-> သက်တမ်းရှိ ()) { $ ဖိုင်ဘာ -> ကိုယ်ရေးရာဇဝင် (), }
အထက်ပါကုဒ်များတွင်ကျွန်ုပ်တို့သည်ဖိုင်ဘာ Coroutine ကိုဖန်တီးပြီး Coroutine ကို execute လုပ်ရန် loop တွင်ကိုယ်ရေးရာဇဝင်ကိုဖုန်းဆက်သည်။ Fiber :: REX () ထုတ်ပြန်ချက်မှတစ်ဆင့် Coroutine သည်၎င်း၏ကိုယ်ပိုင်သတ်ဖြတ်မှုကိုခေတ္တရပ်တန့်ပြီးအခြား coroutines များကိုဆက်လက်လုပ်ဆောင်ရန်ခွင့်ပြုနိုင်သည်။
PHPT ၏နောက်ဆုံးထွက်ဗားရှင်းအနေဖြင့် PHP8 သည် Jit Compiler, ပိုင်ဆိုင်မှု variable variable အမျိုးအစားကြေငြာချက်, ဤအင်္ဂါရပ်များသည် PHP ၏စွမ်းဆောင်ရည်နှင့်ဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာစွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေရုံသာမက Web Development အတွက်ပိုမိုထိရောက်စွာယုံကြည်စိတ်ချရသောဖြေရှင်းနည်းများကိုလည်းပါ 0 င်သည်။ PHP8 ၏နောက်ခံဖွံ့ဖြိုးရေးအခြေခံစည်းမျဉ်းများကိုထိုးထွင်းသိမြင်ခြင်းအားဖြင့် developer များသည်ဤအင်္ဂါရပ်များကိုပိုမို အသုံးချ. 0 က်ဘ်အပလီကေးရှင်းများဖွံ့ဖြိုးတိုးတက်ရေးကိုအရှိန်မြှင့်နိုင်သည်။