È iniziato il beta testing di PHP 8.2

È stata presentata la prima alpha release della nuova versione del linguaggio di programmazione PHP 8.2. Il rilascio è previsto per il 24 novembre. Le novità principali, già disponibili per il test o pianificate per l'implementazione in PHP 8.2:

  • Sono stati aggiunti tipi separati "false" e "null", che possono essere utilizzati, ad esempio, per restituire dalla funzione un'indicazione di errore o un valore vuoto. In precedenza, "false" e "null" potevano essere utilizzati solo in combinazione con altri tipi (ad esempio, "string|false"), mentre ora possono essere utilizzati separatamente: function alwaysFalse(): false { return false; }
  • È stata aggiunta la possibilità di contrassegnare una classe come disponibile solo in lettura. Le proprietà di tali classi possono essere assegnate una sola volta, dopo di che non saranno accessibili per modifiche. In precedenza, solo singole proprietà di classe potevano essere contrassegnate come di sola lettura, mentre ora è possibile attivare questa modalità per tutte le proprietà della classe. L'impostazione del flag «readonly» a livello di classe blocca anche l'aggiunta dinamica di proprietà alla classe. readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* … */); $post->unknown = 'wrong'; // Errore: Impossibile creare una proprietà dinamica Post::$unknown
  • È stata dichiarata obsoleta la possibilità di creare dinamicamente proprietà in una classe (come "post->unknown" nell'esempio sopra). In PHP 9.0, l'accesso a proprietà non definite inizialmente nella classe genererà un errore (ErrorException). Le classi che forniscono i metodi __get e __set per creare proprietà, o le proprietà dinamiche in stdClass continueranno a funzionare senza modifiche. Sarà interrotta solo la supporto per l'uso implicito di proprietà inesistenti, per proteggere gli sviluppatori da errori nascosti. Per mantenere il funzionamento del codice obsoleto, è stato proposto l'attributo "#[AllowDynamicProperties]", che consente l'uso di proprietà dinamiche.
  • È stata fornita la possibilità di filtrare i parametri riservati nei dati di tracciamento dello stack, visualizzati durante un errore. L'omissione di determinate informazioni può essere necessaria quando i dettagli sugli errori generati vengono inviati automaticamente a servizi esterni che monitorano i problemi e informano i programmatori. Ad esempio, è possibile escludere dai tracciamenti i parametri che includono nomi utente, password e variabili di ambiente. function test( $foo, #[\SensitiveParameter] $password, $baz ) { throw new Exception('Errore'); } test('foo', 'password', 'baz'); Errore fatale: eccezione non catturata: Errore in test.php:8 Traccia dello stack: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} lanciato in test.php alla riga 8
  • È stata dichiarata obsoleta la possibilità di inserire valori variabili nelle stringhe utilizzando le espressioni «${var}» e ${(var)}». È stata mantenuta la supporto per le sostituzioni comunemente usate «{$var}» e «$var». Per esempio: «Hello {$world}»; OK «Hello $world»; OK «Hello ${world}»; Obsoleto: L'uso di ${} nelle stringhe è deprecato.
  • Sono stati dichiarati obsoleti oggetti richiamabili (callable) parzialmente supportati, che possono essere invocati tramite «call_user_func($callable)», ma non supportano la chiamata nella forma «$callable()»: «self::method» «parent::method» «static::method» [«self», «method»] [«parent», «method»] [«static», «method»] [«Foo», «Bar::method»] [new Foo, «Bar::method»]
  • È stata implementata la trasformazione della registrazione dei caratteri indipendente dalla località. Funzioni come strtolower() e strtoupper() ora trasformano sempre i caratteri ASCII nel loro formato maiuscolo o minuscolo quando si imposta la località su «C».

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster