Nanomboka ny fitsapana alpha ny PHP 8.2

Naseho ny famoahana alpha voalohany amin'ny sampana vaovao amin'ny fiteny fandaharana PHP 8.2. Ny 24 novambra ny famoahana azy. Ny fanavaozana lehibe efa misy amin'ny fitsapana na nomanina ho fampiharana amin'ny PHP 8.2:

  • Nampiana karazana "diso" sy "null" misaraka, izay azo ampiasaina, ohatra, mba hamerenana famantarana ny fahavitan'ny fahadisoana na sanda foana amin'ny asa iray. Teo aloha, ny "diso" sy ny "null" dia tsy azo ampiasaina afa-tsy miaraka amin'ny karazany hafa (ohatra, "tady|diso"), fa amin'izao fotoana izao dia azo ampiasaina misaraka: function alwaysFalse(): false { return false; }
  • Nampiana ny fahafahana hanamarika kilasy ho vakiana fotsiny. Ny fananana ao amin'ny kilasy toy izany dia azo apetraka indray mandeha ihany, aorian'izay dia tsy azo ovaina. Teo aloha, ny fananan'ny kilasy tsirairay dia azo nasiana marika vakiana fotsiny, fa izao dia azonao atao indray mandeha io fomba io ho an'ny fananana kilasy rehetra. Ny famaritana ny saina "vakiana fotsiny" eo amin'ny sehatry ny kilasy dia manakana ny fanampim-pananana mavitrika amin'ny kilasy. class read-only Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* … */); $post->unknown = 'diso'; // Error: Tsy afaka mamorona fananana mavitrika Post::$unknown
  • Ny fahafahana mamorona dynamique fananana ao amin'ny kilasy dia tsy ampiasaina intsony (toy ny "post->unknown" amin'ny ohatra etsy ambony). Ao amin'ny PHP 9.0, ny fidirana amin'ny fananana tsy voafaritra tany am-boalohany ao amin'ny kilasy dia hiteraka hadisoana (ErrorException). Ny kilasy manome fomba __get sy __set amin'ny famoronana fananana, na fananana mavitrika ao amin'ny stdClass dia mbola hiasa tsy miova, asa an-kolaka miaraka amin'ny fananana tsy misy ihany no hajanona mba hiarovana ny mpamorona amin'ny fahadisoana miafina. Mba hitazonana ny kaody taloha miasa, ny toetra "#[AllowDynamicProperties]" dia atolotra, mamela ny fampiasana fananana mavitrika.
  • Manome fahafahana hanivana ny firafitry ny saro-pady amin'ny fivoahana trace stack amin'ny fotoana misy hadisoana. Mety ilaina ny manapaka ny fampahalalana sasany rehefa alefa ho azy any amin'ireo tolotra hafa manara-maso ny olana sy mampahafantatra ny mpamorona momba izany ny fampahalalana momba ny hadisoana mitranga. Ohatra, azonao atao ny manilika ireo masontsivana amin'ny trace izay misy solon'anarana, tenimiafina ary fari-piainan'ny tontolo iainana. asa fitsapana($foo, #[\SensitiveParameter] $password, $baz) { manipy Exception vaovao('Error'); } test('foo', 'password', 'baz'); Fahadisoana mahafaty: tsy tratra Exception: Error ao amin'ny test.php:8 Stack trace: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} atsipy ao amin'ny test.php online 8
  • Ny fahafahana manolo ny soatoavina miovaova amin'ny tady mampiasa teny "${var}" sy ${(var)}" dia tsy ampiasaina. Ny fanohanana ny fanoloana "{$var}" sy "$var" fampiasa matetika dia nohazonina. Ohatra: "Manahoana {$world}"; OK "Hello $world"; OK "Manahoana ${world}"; Tsy ampiasaina: Tsy ampiasaina intsony ny fampiasana ${} amin'ny tady
  • Ireo antso an-tariby notohanana ampahany izay azo antsoina amin'ny alalan'ny "call_user_func($callable)" dia tsy ampiasaina, fa tsy manohana ny fiantsoana amin'ny endrika "$callable()": "self::method" "parent::method" "static :: fomba" ["tena", "fomba"] ["ray aman-dreny", "fomba"] ["static", "fomba"] ["Foo", "Bar::fomba"] [Foo vaovao, "Bar:: fomba "]
  • Nampiharina ny fiovan'ny tranga tsy miankina eo an-toerana. Ny fiasa toy ny strtolower() sy strtoupper() dia mamadika foana ny tranga misy ny tarehintsoratra ao amin'ny faritra ASCII, toy ny rehefa mametraka ny toerana ho "C".

Source: opennet.ru

Add a comment