Ang alpha testing sa PHP 8.2 nagsugod na

Gipresentar ang unang alpha release sa bag-ong branch sa PHP 8.2 programming language. Ang pagpagawas gikatakda alang sa Nobyembre 24th. Ang mga nag-unang mga inobasyon anaa na alang sa pagsulay o giplano alang sa pagpatuman sa PHP 8.2:

  • Gidugang ang mga lahi nga tipo nga "bakak" ug "null", nga magamit, pananglitan, aron ibalik ang usa ka timaan sa pagkompleto sa usa ka sayup o usa ka walay sulod nga kantidad sa usa ka function. Kaniadto, ang "false" ug "null" magamit ra kauban sa ubang mga tipo (pananglitan, "string|false"), apan karon mahimo na silang gamiton nga gilain: function alwaysFalse(): false { return false; }
  • Gidugang ang abilidad sa pagmarka sa usa ka klase isip read-only. Ang mga kabtangan sa ingon nga mga klase mahimong itakda kausa ra, pagkahuman dili na sila magamit alang sa pagbag-o. Kaniadto, ang indibidwal nga mga kabtangan sa klase mahimong markahan nga read-only, apan karon mahimo nimong i-on kini nga mode alang sa tanan nga mga kabtangan sa klase sa usa ka higayon. Ang pagtino sa "readonly" nga bandila sa lebel sa klase nagbabag usab sa dinamikong pagdugang sa mga kabtangan sa klase. readonly class Post {public function __construct(public string $title, public Author $author,) {} } $post = new Post(/* … */); $post->wala mailhi = 'sayup'; // Error: Dili makahimo ug dinamikong kabtangan Post::$unknown
  • Ang abilidad sa dinamikong paghimo og mga kabtangan sa usa ka klase wala na gigamit (sama sa "post->unknown" sa pananglitan sa ibabaw). Sa PHP 9.0, ang pag-access sa mga kabtangan nga wala orihinal nga gihubit sa klase magresulta sa usa ka sayup (ErrorException). Ang mga klase nga naghatag og __get ug __set nga mga pamaagi para sa pagmugna og mga propyedad, o dinamikong mga kabtangan sa stdClass magpadayon sa pagtrabaho nga wala mausab, ang implicit nga trabaho nga wala'y mga kabtangan ang ihunong aron mapanalipdan ang developer gikan sa mga tinago nga mga sayup. Aron mapadayon ang karaan nga code, ang "#[AllowDynamicProperties]" nga hiyas gisugyot, nga gitugotan ang paggamit sa dinamikong mga kabtangan.
  • Gihatag ang abilidad sa pagsala sa sensitibo nga mga setting sa stack trace output sa panahon sa usa ka sayup. Mahimong gikinahanglan ang pagputol sa pipila ka impormasyon kung ang impormasyon bahin sa mga sayop nga mahitabo awtomatik nga ipadala ngadto sa mga serbisyo sa ikatulo nga partido nga nagsubay sa mga problema ug nagpahibalo sa mga developers mahitungod niini. Pananglitan, mahimo nimong dili iapil ang mga parameter gikan sa pagsubay nga naglakip sa mga username, password, ug mga variable sa palibot. function test($foo, #[\SensitiveParameter] $password, $baz) {ilabay ang bag-ong Exception('Error'); } test('foo', 'password', 'baz'); Makamatay nga sayop: Wala Makuha nga Exception: Error sa test.php:8 Stack trace: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} nga gilabay sa test.php online 8
  • Ang abilidad sa pag-ilis sa variable values ​​​​sa mga string gamit ang "${var}" ug ${(var)}" nga mga ekspresyon wala na gigamit. Ang suporta alang sa kasagarang gigamit nga "{$var}" ug "$var" nga mga substitusyon gipabilin. Pananglitan: "Hello {$world}"; OK "Hello $world"; OK "Hello ${world}"; Wala na gamita: Ang paggamit sa ${} sa mga kuwerdas wala na gamita
  • Ang partially supported callables nga matawag pinaagi sa "call_user_func($callable)" wala na gamita, pero wala mosuporta sa pagtawag sa pormang "$callable()": "self::method" "parent::method" "static :: pamaagi" ["kaugalingon", "pamaagi"] ["ginikanan", "pamaagi"] ["static", "pamaagi"] ["Foo", "Bar::pamaagi"] [bag-ong Foo, "Bar: : pamaagi "]
  • Gipatuman ang locale-independent case conversion. Ang mga gimbuhaton sama sa strtolower() ug strtoupper() karon kanunay nga mag-convert sa kaso sa mga karakter sa ASCII range, sama sa pag-set sa locale sa "C".

Source: opennet.ru

Idugang sa usa ka comment