Alfa-testing av PHP 8.2 har begynt.

Den fÞrste alfa-utgaven av den nye grenen av programmeringssprÄket PHP 8.2 er nÄ tilgjengelig. Utgivelsen er planlagt til 24. november. Hovednyhetene, som allerede er tilgjengelige for testing eller planlegges implementert i PHP 8.2:

  • Det har blitt lagt til separate typer «false» og «null», som kan brukes, for eksempel, for Ă„ returnere en feilmelding eller et tomt verdig fra en funksjon. Tidligere kunne «false» og «null» kun brukes i kombinasjon med andre typer (som «string|false»), men nĂ„ kan de brukes hver for seg: function alwaysFalse(): false { return false; }
  • En ny funksjon for Ă„ merke klasser som kun lesbare er blitt lagt til. Egenskaper i slike klasser kan kun defineres Ă©n gang, hvoretter de ikke vil vĂŠre tilgjengelige for endring. Tidligere kunne kun individuelle egenskaper i klassen merkes som kun lesbare, men nĂ„ kan man aktivere denne modusen for alle klassets egenskaper pĂ„ en gang. Å spesifisere flagget «readonly» pĂ„ klassenivĂ„ blokkerer ogsĂ„ dynamisk tillegg av egenskaper til klassen. readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* 
 */); $post->unknown = 'wrong'; // Feil: Kan ikke opprette en dynamisk egenskap Post::$unknown
  • Muligheten for dynamisk oppretting av egenskaper i klassen (som «post->unknown» i eksemplet ovenfor) er blitt erklĂŠrt foreldet. I PHP 9.0 vil tilgang til egenskaper som ikke opprinnelig er definert i klassen, resultere i en feil (ErrorException). Klasser som tilbyr metodene __get og __set for opprettelse av egenskaper, eller dynamiske egenskaper i stdClass, vil fortsette Ă„ fungere uten endringer, men stĂžtten for implicit tilgang til ikke-eksisterende egenskaper vil bli avviklet for Ă„ beskytte utviklere mot skjulte feil. For Ă„ opprettholde funksjonaliteten til eldre kode er attributtet «#[AllowDynamicProperties]» foreslĂ„tt, som tillater bruk av dynamiske egenskaper.
  • Det er lagt til mulighet for filtrering av sensitive parametere i stakktracingdata som vises ved feil. Utelukkelse av spesifik informasjon kan vĂŠre nĂždvendig nĂ„r informasjon om oppstĂ„tte feil automatisk sendes til tredjepartstjenester som sporer problemer og informerer utviklerne om dem. For eksempel kan man utelate parametere fra stakken som inneholder brukernavn, passord og miljĂžvariabler. function test( $foo, #[\SensitiveParameter] $password, $baz ) { throw new Exception(‘Error’); } test(‘foo’, ‘password’, ‘baz’); Fatal error: Uncaught Exception: Error in test.php:8 Stack trace: #0 test.php(11): test(‘foo’, Object(SensitiveParameterValue), ‘baz’) #1 {main} thrown in test.php on line 8
  • Muligheten for substitusjon av variabelverdier i strenger med uttrykkene «${var}» og ${(var)}» er erklĂŠrt som utdaterte. StĂžtte for vanlig brukte substitusjoner «{$var}» og «$var» er bevart. For eksempel: «Hello {$world}»; OK «Hello $world»; OK «Hello ${world}»; Deprecated: Using ${} in strings is deprecated
  • Delvis stĂžttede kallbare objekter (callable) som kan kalles med «call_user_func($callable)», men ikke stĂžtter kall i form av «$callable()» er erklĂŠrt som utdaterte: «self::method» «parent::method» «static::method» [«self», «method»] [«parent», «method»] [«static», «method»] [«Foo», «Bar::method»] [new Foo, «Bar::method»]
  • Det er implementert lokasjonsuavhengig bokstavereduksjon. Funksjoner som strtolower() og strtoupper() vil nĂ„ alltid konvertere bokstaver i ASCII-omrĂ„det uansett innstilt lokal.

Kilde: opennet.ru

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster