အင်တာနက်လျင်မြန်စွာဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူ 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 က်ဘ်အပလီကေးရှင်းများဖွံ့ဖြိုးတိုးတက်ရေးကိုအရှိန်မြှင့်နိုင်သည်။