Alpha-testen fan PHP 8.2 is begon

De earste alfa-release fan 'e nije tûke fan' e PHP 8.2-programmearringstaal is presintearre. De release is pland foar 24 novimber. De wichtichste ynnovaasjes al beskikber foar testen of pland foar ymplemintaasje yn PHP 8.2:

  • Added aparte typen "false" en "null", dat kin brûkt wurde, bygelyks, foar in funksje werom in flater beëiniging flagge of in lege wearde. Earder koene "false" en "null" allinnich brûkt wurde yn kombinaasje mei oare typen (bygelyks "string|false"), mar no kinne se apart brûkt wurde: function alwaysFalse(): false { return false; }
  • De mooglikheid tafoege om in klasse te markearjen as allinich-lêzen. Eigenskippen yn sokke klassen kinne mar ien kear ynsteld wurde, wêrnei't se net feroare wurde kinne. Earder koenen yndividuele klasse-eigenskippen wurde markearre allinnich-lês, mar no kinne jo ynskeakelje dizze modus foar alle klasse eigenskippen yn ien kear. It opjaan fan de "allinnich-lêzen" flagge op klassenivo blokkearret ek eigenskippen dynamysk taheakke oan de klasse. readonly class Post { publike funksje __construct (iepenbiere string $ title, iepenbiere Auteur $ auteur, ) {} } $ post = nije Post (/* … */); $post->unknown = 'ferkeard'; // Flater: Kin dynamyske eigenskip net oanmeitsje Post::$ûnbekend
  • De mooglikheid om dynamysk eigenskippen te meitsjen yn in klasse (lykas "post->ûnbekend" yn it foarbyld hjirboppe) is ôfkard. Yn PHP 9.0, tagong ta eigenskippen dy't net yn earste ynstânsje definiearre yn 'e klasse sil resultearje yn in flater (ErrorException). Klassen dy't biede __get en __set metoaden foar it meitsjen fan eigenskippen, of dynamyske eigenskippen yn stdClass sil trochgean te wurkjen sûnder feroarings, allinnich ymplisyt wurk mei net-besteande eigenskippen wurdt stipe te beskermjen de ûntwikkelder út ferburgen bugs. Om it wurk fan 'e âlde koade te behâlden, wurdt it attribút "#[AllowDynamicProperties]" foarsteld, wêrtroch it gebrûk fan dynamyske eigenskippen mooglik is.
  • Biedt de mooglikheid om gefoelige parameters te filterjen yn 'e útfier fan' e stapelspoar by in flater. It útsnijen fan bepaalde ynformaasje kin nedich wêze as ynformaasje oer flaters dy't foarkomme automatysk stjoerd wurdt nei tsjinsten fan tredden dy't problemen folgje en ûntwikkelders der oer ynformearje. Jo kinne bygelyks parameters dy't brûkersnammen, wachtwurden en omjouwingsfariabelen omfetsje útslute fan tracing. function test ($foo, #[\SensitiveParameter] $wachtwurd, $baz) { throw new Exception ('Flater'); } test('foo', 'wachtwurd', 'baz'); Fatale flater: Net fûn útsûndering: Flater yn test.php:8 Stack trace: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} smiten yn test.php op lyn 8
  • De mooglikheid om fariabele wearden te ferfangen yn stringen mei de útdrukkingen "${var}" en ${(var)} is ôfret. Stipe foar de meast brûkte "{$var}" en "$var" ferfangings is behâlden. Bygelyks: "Hallo {$world}"; OK "Hallo $wrâld"; OK "Hallo ${wrâld}"; Ôfret: it brûken fan ${} yn strings wurdt ôfret
  • Ferâldere foar in part stipe callables dy't kinne wurde neamd fia "call_user_func($callable)" mar net stypje oprop yn 'e foarm fan "$callable()": "self::method" "parent::method" "static" ::metoade " ["sels", "metoade"] ["âlder", "metoade"] ["statysk", "metoade"] ["Foo", "Bar::metoade"] [nije Foo, "Bar: :metoade" ]
  • Ymplementearre lokaasje-ûnôfhinklike saakkonverzje. Funksjes lykas strtolower() en strtoupper() konvertearje no altyd it gefal fan karakters yn it ASCII-berik as ynsteld op de "C"-lokaal.

Boarne: opennet.ru

Add a comment