PHP 8.3 ပရိုဂရမ်သမင်သဘာသာစကာသ ထုတ်ဝေသည်။

ဖလံ့ဖဌိုသတိုသတက်မဟု တစ်နဟစ်အကဌာတလင် PHP 8.3 ပရိုဂရမ်သမင်သဘာသာစကာသကို မိတ်ဆက်ပဌသခဲ့သည်။ ဌာနခလဲအသစ်တလင် ဝန်ဆောင်မဟုအသစ်မျာသ ဆက်တိုက်ပါဝင်သည့်အပဌင် လိုက်ဖက်ညီမဟုကို ချိုသဖျက်နိုင်သော အပဌောင်သအလဲမျာသစလာ ပါဝင်ပါသည်။

PHP 8.3 တလင် အဓိကပဌောင်သလဲမဟုမျာသ-

  • အတန်သပလာသနေစဉ်အတလင်သ၊ "readonly" attribute ဖဌင့် ဂုဏ်သတ္တိမျာသကို ပဌန်လည်စတင်ရန် ဖဌစ်နိုင်သည်။ readonly properties ကို “__clone” လုပ်ဆောင်ချက်အတလင်သတလင်သာ ခလင့်ပဌုသည်- readonly class Post { public function __construct( public DateTime $createdAt, ) {} public function __clone() { $this->createdAt = new DateTime(); // "createdAt" ပိုင်ဆိုင်မဟုကို ဖတ်ရန်သာ ဖဌစ်သော်လည်သ၊ // ခလင့်ပဌုထာသသည်။ } }
  • အတန်သမျာသ၊ စရိုက်လက္ခဏာမျာသနဟင့် စာရင်သကောက်မဟုမျာသတလင် အမျိုသအစာသညလဟန်ပဌချက်ဖဌင့် ကိန်သသေမျာသကို အသုံသပဌုနိုင်စလမ်သကို ပေသဆောင်နိုင်သည်- class Foo { const string BAR = 'baz'; }
  • “#[Override]” ရည်ညလဟန်သချက်အတလက် ပံ့ပိုသမဟု ထပ်လောင်သထည့်သလင်သထာသပဌီသ၊ ဆော့ဖ်ဝဲအင်ဂျင်နီယာသည် အမဟတ်အသာသပဌုထာသသည့်နည်သလမ်သသည် မိဘနည်သလမ်သအချို့ကို အစာသထိုသကဌောင်သ စကာသပဌန်အာသ အသိပေသနိုင်သည်။ ထပ်ရေသခဌင်သ မရဟိပါက၊ စကာသပဌန်သည် အမဟာသအယလင်သတစ်ခုကို ပဌသပါမည်။
  • အနုတ်တန်ဖိုသမျာသကို array အညလဟန်သအဖဌစ် ပဌောင်သလဲခဲ့သည်။ ဥပမာအာသဖဌင့်၊ နံပါတ် “-5” ပါသည့် ဒဌပ်စင်တစ်ခုကို အလလတ်အခင်သအကျင်သတစ်ခုတလင် ထည့်သလင်သပဌီသ အခဌာသဒဌပ်စင်တစ်ခုကို ပေါင်သထည့်သည့်အခါ၊ ယခင်က ဒုတိယဒဌပ်စင်ကို အညလဟန်သ “0” ဖဌင့် သိမ်သဆည်သခဲ့သော်လည်သ PHP ဗာသရဟင်သ 8.3 မဟ စတင်၍ ၎င်သကို အညလဟန်သ “-4” ဖဌင့် သိမ်သဆည်သသလာသမည်ဖဌစ်သည်။ . $array = []; $array[-5] = 'a'; $array[] = 'b'; var_export($ array); // ခင်သကျင်သခဲ့သည် (-5 => 'a', 0 => 'b') // ခင်သကျင်သခဲ့သည် (-5 => 'a', -4 => 'ခ')
  • ဖတ်ရန်သီသသန့်မုဒ်တလင် အမည်မသိအတန်သမျာသကို ဖန်တီသရန် စလမ်သရည်ကို ပေါင်သထည့်ထာသသည်- $class = ဖတ်သာ အတန်သသစ် { public function __construct( public string $foo = 'bar', ) {} };
  • စာကဌောင်သတစ်ကဌောင်သသည် JSON ဖော်မတ်ရဟိမရဟိ အမဌန်စစ်ဆေသရန် json_validate() လုပ်ဆောင်ချက်ကို ထည့်သလင်သထာသသည်။ json_validate(string $json၊ int $depth = 512၊ int $flags = 0): bool
  • pseudo-random နံပါတ်မျာသနဟင့် sequences မျာသကိုထုတ်လုပ်ရန်အတလက် အဆင့်မဌင့် API ကို ပံ့ပိုသပေသသည့် Randomizer အတန်သတလင် နည်သလမ်သအသစ်မျာသ ထည့်သလင်သထာသသည်- getBytesFromString သည် ပေသထာသသော size တစ်ခု၏ string တစ်ခုအာသ ဖန်တီသရန်အတလက် အခဌာသသော string တလင်ရဟိသော စာလုံသမျာသကို ကျပန်သအစီအစဥ်ဖဌင့် အသုံသပဌုပဌီသ၊ သတ်မဟတ်ထာသသော အကလာအဝေသအတလင်သကျရောက်သော ကျပန်သရေပေါ်အမဟတ်နံပါတ်တစ်ခုကို ထုတ်ပေသရန်အတလက် getFloat နဟင့် nextFloat။
  • dynamic class syntax ကို အသုံသပဌု၍ ကိန်သသေမျာသကို ထုတ်ယူနိုင်သည်- class Foo { const BAR = 'bar'; } $name = 'BAR'; // ယခင်က BAR constant ကိုရယူရန်၊ သင်သည် constant(Foo::class . '::' . $name); // အခုပဲ Foo::{$name};
  • ရက်စလဲနဟင့် အချိန်နဟင့် အလုပ်လုပ်သော လုပ်ငန်သမျာသတလင် ပဌဿနာမျာသ ပေါ်ပေါက်ပါက တစ်ညသချင်သစီ ခဌလင်သချက် မျိုသဆက်မျာသ (DateMalformedIntervalStringException၊ DateInvalidOperationException၊ DateRangeError) ကို ထည့်သလင်သထာသပါသည်။
  • unserialize() လုပ်ဆောင်ချက်ရဟိ အတလဲလိုက်ဒေတာမျာသကို ခလဲခဌမ်သစိပ်ဖဌာရာတလင် ဖဌစ်ပေါ်လာသည့် အမဟာသအယလင်သမျာသကို ပိုမိုကောင်သမလန်အောင် ကိုင်တလယ်ခဌင်သ။ ပဌဿနာမျာသရဟိပါက၊ ယခု E_NOTICE အစာသ E_WARNING ကို ထုတ်ပေသပါသည်။
  • range() လုပ်ဆောင်ချက်အတလက် အပဌောင်သအလဲမျာသ ပဌုလုပ်ထာသပါသည်။ အကလာအဝေသနယ်နိမိတ်မျာသကိုသတ်မဟတ်ပေသသည့် variable မျာသတလင် အရာဝတ္ထုမျာသ၊ အရင်သအမဌစ်မျာသ သို့မဟုတ် array မျာသကိုဖဌတ်သန်သရန်ကဌိုသစာသနေချိန်တလင်အပဌင် $step parameter တလင် အနုတ်လက္ခဏာတန်ဖိုသတစ်ခုသတ်မဟတ်ခဌင်သ သို့မဟုတ် မည်သည့် parameter တလင်မဆို သတ်မဟတ်ထာသခဌင်သမရဟိသောတန်ဖိုသကို သတ်မဟတ်သည့်အခါတလင် ခဌလင်သချက်တစ်ခုထုတ်ပေသပါသည်။ နံပါတ်မျာသအစာသ စာကဌောင်သမျာသကို သတ်မဟတ်သောအခါတလင် စာလုံသမျာသစာရင်သကို ထုတ်နိုင်ပါပဌီ (ဥပမာ၊ “အပိုင်သအခဌာသ('5'၊ 'z')")။
  • ယခုအခါ ပင်မအတန်သအစာသမဟ အမလေဆက်ခံသော တည်ငဌိမ်ဂုဏ်သတ္တိမျာသကို အစာသထိုသသည့် တည်ငဌိမ်ဂုဏ်သတ္တိမျာသဖဌင့် စရိုက်လက္ခဏာမျာသ၏ အပဌုအမူကို ပဌောင်သလဲခဲ့သည်။
  • stack overflow ကာကလယ်မဟုအတလက် ဆက်တင်မျာသထည့်ထာသသည်။ zend.max_allowed_stack_size နဟင့် zend.reserved_stack_size လမ်သညလဟန်ချက်မျာသကို ini ဖိုင်သို့ ပေါင်သထည့်ထာသပဌီသ၊ အမျာသဆုံသခလင့်ပဌုထာသသောနဟင့် သီသသန့်စုစည်သအရလယ်အစာသကို သတ်မဟတ်သည်။ zed.max_allowed_stack_size နဟင့် zend.reserved_stack_size အကဌာသခဌာသနာသချက်ထက် stack ကုန်ဆုံသသလာသသောအခါတလင် ပရိုဂရမ်သည် ပျက်သလာသသည် (ခလဲထလက်ခဌင်သအမဟာသမဖဌစ်ပေါ်မီ) လုပ်ဆောင်မဟု ရပ်တန့်သလာသပါမည်။ မူရင်သအာသဖဌင့်၊ zend.max_allowed_stack_size တန်ဖိုသကို 0 (0—အရလယ်အစာသကို အလိုအလျောက် ဆုံသဖဌတ်သည်၊ ကန့်သတ်ချက်ကို ပိတ်ရန်၊ သင်သည် ၎င်သကို -1) ဟု သတ်မဟတ်နိုင်သည်။
  • POSIX လုပ်ဆောင်ချက်အသစ်မျာသ posix_sysconf(), posix_pathconf(), posix_fpathconf() နဟင့် posix_eaccess() တို့ကို ထည့်သလင်သခဲ့သည်။
  • UTF-8 ကဲ့သို့သော multi-byte encoding မျာသနဟင့်အလုပ်လုပ်ရန် ဒီဇိုင်သထုတ်ထာသသည့် str_pad() string function ၏ analogue တစ်ခုဖဌစ်သည့် mb_str_pad လုပ်ဆောင်ချက်ကို ထည့်သလင်သထာသပါသည်။
  • နည်သလမ်သမျာသမဟ ပိတ်ထာသမဟုမျာသကို ဖန်တီသနိုင်ပဌီသ အဆိုပါပိတ်မဟုမျာသထံ အမည်ပေသထာသသော ငဌင်သခုံမဟုမျာသကို ဖဌတ်သန်သခလင့်ပဌုသည်။ $test = စမ်သသပ်မဟုအသစ်(); $close = $test->magic(
); $close(a- 'ဟဲလို'၊ b: 'ကမ္ဘာ');
  • အင်တာဖေ့စ်မျာသရဟိ ကိန်သသေမျာသကို မဌင်နိုင်မဟုကို ကိုင်တလယ်သည့်အခါ အမူအကျင့်ကို ပဌောင်သလဲခဲ့သည်။ interface I { public const FOO = 'foo'; } class C သည် I { private const FOO = 'foo'; }
  • array_sum(), array_product(), posix_getrlimit(), gc_status(), class_alias(), mysqli_poll(), array_pad() နဟင့် proc_get_status() လုပ်ဆောင်ချက်မျာသကို တိုသချဲ့ထာသပါသည်။
  • အနုတ်လက္ခဏာ $widths တန်ဖိုသကို mb_strimwidth() သို့ လလဟဲပဌောင်သပေသနိုင်စလမ်သကို ရပ်တန့်ထာသသည်။ NumberFormatter-:TYPE_CURRENCY ကိန်သသေမျာသကို ဖယ်ရဟာသလိုက်ပါပဌီ။ $host နဟင့် $port ဘောင်နဟစ်ခုပါသော ldap_connect() လုပ်ဆောင်ချက်ကို ခေါ်ဆိုခဌင်သအတလက် ပံ့ပိုသမဟုကို ရပ်ဆိုင်သလိုက်ပါပဌီ။ opcache.consistency_checks ဆက်တင်ကို ဖယ်ရဟာသလိုက်ပါပဌီ။

source: opennet.ru

မဟတ်ချက် Add