Началось альфа-тестирование PHP 8.2

Представлен первый альфа-выпуск новой ветки языка программирования PHP 8.2. Релиз намечен на 24 ноября. Основные новшества, уже доступные для тестирования или планируемые к реализации в PHP 8.2:

  • Добавлены отдельные типы «false» и «null», которые могут использоваться, например, для возвращения функцией признака завершения с ошибкой или пустого значения. Ранее «false» и «null» могли использоваться только в связке с другими типами (например, «string|false»), а теперь могут применяться отдельно: 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
  • Объявлена устаревшей возможность динамического создания свойств в классе (как «post->unknown» в примере выше). В PHP 9.0 обращение к свойствам, изначально не определённым в классе, будет приводить к ошибке (ErrorException). Классы, предоставляющие методы __get и __set для создания свойств, или динамические свойства в stdClass продолжат работать без изменений, прекратится поддержка только неявной работы с несуществующими свойствами для того чтобы защитить разработчика от скрытых ошибок. Для сохранения работы старого кода предложен атрибут «#[AllowDynamicProperties]», разрешающий использование динамических свойств.
  • È 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, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster