Alfa-toetsing van PHP 8.2 het begin

Die eerste alfa-vrystelling van die nuwe tak van die PHP 8.2-programmeertaal is aangebied. Die vrystelling is geskeduleer vir 24 November. Die belangrikste innovasies wat reeds beskikbaar is vir toetsing of beplan word vir implementering in PHP 8.2:

  • Afsonderlike tipes "onwaar" en "nul" is bygevoeg, wat byvoorbeeld gebruik kan word om 'n teken van voltooiing met 'n fout of 'n leë waarde deur 'n funksie terug te gee. Voorheen kon "false" en "nul" slegs saam met ander tipes gebruik word (byvoorbeeld, "string|false"), maar nou kan hulle afsonderlik gebruik word: function alwaysFalse(): false { return false; }
  • Bygevoeg die vermoë om 'n klas as leesalleen te merk. Eienskappe in sulke klasse kan slegs een keer gestel word, waarna dit nie vir verandering beskikbaar sal wees nie. Voorheen kon individuele klaseienskappe as leesalleen gemerk word, maar nou kan jy hierdie modus vir alle klaseienskappe gelyktydig aanskakel. Deur die "leesalleen"-vlag op klasvlak te spesifiseer, blokkeer ook die dinamiese toevoeging van eienskappe tot die klas. leesalleen-klas Post { publieke funksie __konstruk (publieke string $titel, publieke outeur $outeur, ) {} } $pos = nuwe plasing(/* … */); $post->unknown = 'verkeerd'; // Fout: Kan nie dinamiese eiendom skep nie Post::$unknown
  • Die vermoë om eienskappe in 'n klas dinamies te skep, is opgeskort (soos "post->onbekend" in die voorbeeld hierbo). In PHP 9.0 sal toegang tot eienskappe wat nie oorspronklik in die klas gedefinieer is nie, 'n fout tot gevolg hê (ErrorException). Klasse wat __get en __set metodes verskaf om eienskappe te skep, of dinamiese eienskappe in stdClass sal onveranderd voortgaan om te werk, slegs implisiete werk met nie-bestaande eienskappe sal gestop word om die ontwikkelaar te beskerm teen verborge foute. Om die ou kode te laat werk, word die "#[AllowDynamicProperties]"-kenmerk voorgestel, wat die gebruik van dinamiese eienskappe toelaat.
  • Voorsien die vermoë om sensitiewe instellings in die stapelspooruitset te filter ten tyde van 'n fout. Die uitsny van sekere inligting kan nodig wees wanneer inligting oor foute wat voorkom outomaties na derdepartydienste gestuur word wat probleme opspoor en ontwikkelaars daaroor inlig. Byvoorbeeld, jy kan parameters van die spoor uitsluit wat gebruikersname, wagwoorde en omgewingsveranderlikes insluit. funksie toets ($foo, #[\SensitiveParameter] $wagwoord, $baz) {gooi nuwe uitsondering('Fout'); } test('foo', 'wagwoord', 'baz'); Noodlottige fout: Onopgevang Uitsondering: Fout in test.php:8 Stapelspoor: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} gegooi in test.php aanlyn 8
  • Die vermoë om veranderlike waardes in stringe te vervang deur "${var}" en ${(var)}" uitdrukkings te gebruik, is opgeskort. Ondersteuning vir algemeen gebruikte "{$var}" en "$var" vervangings is behou. Byvoorbeeld: "Hallo {$world}"; OK "Hallo $wêreld"; OK "Hallo ${wêreld}"; Afgeskryf: Die gebruik van ${} in stringe is opgeskort
  • Gedeeltelik ondersteunde oproepbares wat via "call_user_func($callable)" geroep kan word, is opgeskort, maar ondersteun nie oproepe in die vorm "$callable()": "self::method" "parent::method" "static :: metode" ["self", "metode"] ["ouer", "metode"] ["staties", "metode"] ["Foo", "Bar::metode"] [nuwe Foo, "Bar: :metode" "]
  • Geïmplementeerde plekonafhanklike saakomskakeling. Funksies soos strtolower() en strtoupper() skakel nou altyd die hoofletters van karakters in die ASCII-reeks om, soos wanneer die locale na "C" gestel word.

Bron: opennet.ru

Voeg 'n opmerking