Começou o teste alfa do PHP 8.2

Foi apresentado o primeiro lançamento alfa da nova versão da linguagem de programação PHP 8.2. O lançamento está previsto para 24 de novembro. As principais novidades, já disponíveis para teste ou planejadas para implementação no PHP 8.2:

  • Adicionados tipos separados de "false" e "null", que podem ser usados, por exemplo, para retornar um indicativo de erro ou valor vazio de uma função. Anteriormente, "false" e "null" podiam ser usados apenas em conjunto com outros tipos (por exemplo, "string|false"), e agora podem ser aplicados separadamente: function alwaysFalse(): false { return false; }
  • Adicionada a capacidade de marcar uma classe como somente leitura. As propriedades em tais classes podem ser definidas apenas uma vez, após o que não estarão disponíveis para alteração. Anteriormente, apenas propriedades individuais da classe podiam ser marcadas como somente leitura, mas agora é possível ativar este modo para todas as propriedades da classe de uma só vez. A especificação da flag "readonly" no nível da classe também bloqueia a adição dinâmica de propriedades à classe. readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post( /* … * ); $post->unknown = ‘wrong’; // Erro: Não é possível criar a propriedade dinâmica Post::$unknown
  • Foi declarado obsoleto o recurso de criação dinâmica de propriedades na classe (como "post->unknown" no exemplo acima). No PHP 9.0, acessar propriedades que não estão inicialmente definidas na classe resultará em um erro (ErrorException). Classes que fornecem métodos __get e __set para a criação de propriedades ou propriedades dinâmicas em stdClass continuarão funcionando sem alterações; somente o suporte a operações implícitas com propriedades inexistentes será interrompido para proteger o desenvolvedor de erros ocultos. Para manter a funcionalidade do código antigo, foi proposto o atributo "#[AllowDynamicProperties]", permitindo o uso de propriedades dinâmicas.
  • Foi adicionada a capacidade de filtrar parâmetros confidenciais nos dados de rastreamento de pilha exibidos durante um erro. A exclusão de informações específicas pode ser necessária quando detalhes sobre erros emergentes são enviados automaticamente para serviços de terceiros que monitoram problemas e informam os desenvolvedores. Por exemplo, é possível excluir do rastreamento parâmetros que incluem nomes de usuários, senhas e variáveis de ambiente. 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
  • Foi declarada obsoleta a possibilidade de interpolar valores de variáveis em strings usando as expressões «${var}» e ${(var)}». O suporte para as interpoliações comumente utilizadas «{$var}» e «$var» foi mantido. Por exemplo: «Hello {$world}»; OK «Hello $world»; OK «Hello ${world}»; Deprecated: Using ${} in strings is deprecated
  • Foram declarados obsoletos os objetos chamáveis parcialmente suportados (callable) que podem ser invocados através de «call_user_func($callable)», mas não suportam chamadas na forma «$callable()»: «self::method» «parent::method» «static::method» [«self», «method»] [«parent», «method»] [«static», «method»] [«Foo», «Bar::method»] [new Foo, «Bar::method»]
  • Foi implementada uma conversão de caixa de letras independente de localidade. Funções como strtolower() e strtoupper() agora sempre convertem a caixa de letras em ASCII, independentemente da localidade definida como «C».

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster