O teste alfa do PHP 8.2 começou

Foi apresentada a primeira versão alfa do novo ramo da linguagem de programação PHP 8.2. O lançamento está previsto para 24 de novembro. As principais inovações já disponíveis para testes ou planejadas para implementação no PHP 8.2:

  • Adicionados tipos separados “false” e “null”, que podem ser usados, por exemplo, para uma função retornar um sinalizador de finalização de erro ou um valor vazio. Anteriormente, “false” e “null” só podiam ser usados ​​em conjunto com outros tipos (por exemplo, “string|false”), mas agora podem ser usados ​​separadamente: function AlwaysFalse(): false { return false; }
  • Adicionada a capacidade de marcar uma classe como somente leitura. As propriedades nessas classes podem ser definidas apenas uma vez, após o que não estarão disponíveis para alteração. Anteriormente, as propriedades de classe individuais podiam ser marcadas como somente leitura, mas agora você pode ativar esse modo para todas as propriedades de classe de uma só vez. Especificar o sinalizador "somente leitura" 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->desconhecido = 'errado'; // Erro: Não é possível criar a propriedade dinâmica Post::$unknown
  • A capacidade de criar propriedades dinamicamente em uma classe (como "post->unknown" no exemplo acima) foi descontinuada. No PHP 9.0, acessar propriedades que não estão definidas inicialmente na classe resultará em um erro (ErrorException). Classes que fornecem métodos __get e __set para criação de propriedades, ou propriedades dinâmicas em stdClass continuarão funcionando sem alterações, apenas o trabalho implícito com propriedades inexistentes será suportado para proteger o desenvolvedor de bugs ocultos. Para preservar o funcionamento do código antigo, é proposto o atributo “#[AllowDynamicProperties]”, permitindo o uso de propriedades dinâmicas.
  • Forneceu a capacidade de filtrar configurações confidenciais na saída de rastreamento de pilha no momento de um erro. Cortar certas informações pode ser necessário quando informações sobre erros que ocorrem são enviadas automaticamente para serviços de terceiros que rastreiam problemas e informam os desenvolvedores sobre eles. Por exemplo, você pode excluir parâmetros do rastreamento que incluem nomes de usuários, senhas e variáveis ​​de ambiente. function test( $foo, #[\SensitiveParameter] $password, $baz ) { throw new Exception('Error'); } teste('foo', 'senha', 'baz'); Fatal error: Uncaught Exception: Error in test.php:8 Stack trace: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} lançado em test.php on-line 8
  • A capacidade de substituir valores de variáveis ​​em strings usando as expressões "${var}" e ${(var)}" foi descontinuada. O suporte para as substituições "{$var}" e "$var" comumente usadas foi mantido. Por exemplo: "Olá {$mundo}"; OK "Olá $mundo"; OK "Olá ${mundo}"; Obsoleto: o uso de ${} em strings está obsoleto
  • Callables parcialmente suportados que podem ser chamados via "call_user_func($callable)" foram obsoletos, mas não suportam chamadas no formato "$callable()": "self::method" "parent::method" "static :: method" ["self", "method"] ["parent", "method"] ["static", "method"] ["Foo", "Bar::method"] [new Foo, "Bar: :method "]
  • Conversão de caso independente de localidade implementada. Funções como strtolower() e strtoupper() agora sempre convertem as maiúsculas e minúsculas dos caracteres no intervalo ASCII, como ao definir a localidade como "C".

Fonte: opennet.ru

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