O teste beta do PHP 8 já começou

Introduzido a primeira versão beta do novo ramo da linguagem de programação PHP 8. O lançamento está agendado para 26 de novembro. Ao mesmo tempo, versões corretivas do PHP 7.4.9, 7.3.21 e
7.2.33, que eliminou erros e vulnerabilidades acumuladas.

O principal inovações PHP8:

  • Ativando Compilador JIT, cujo uso melhorará a produtividade.
  • apoio argumentos de função nomeados, permitindo que você passe valores para a função em relação aos nomes, ou seja, Você pode passar argumentos em qualquer ordem e definir argumentos opcionais. Por exemplo, "array_fill(start_index: 0, num: 100, valor: 50)".
  • Ao chamar métodos permitido utilizando o operador “?”, que permite iniciar uma chamada somente se o método estiver presente, o que evita verificações desnecessárias para retorno do valor “nulo”. Por exemplo, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • apoio tipos de união, definindo coleções de dois ou mais tipos (por exemplo, “public function foo(Foo|Bar $input): int|float;”).
  • apoio atributos (anotações) que permitem vincular metadados (como informações de tipo) a classes sem usar a sintaxe Docblock.
  • Suporte de expressão partida, que, diferentemente do switch, pode retornar valores, suportar condições de combinação, usar comparações estritas de tipos e não exigir uma especificação de “quebra”.

    $resultado=correspondência($entrada){
    0 => "olá",
    '1', '2', '3' => “mundo”,
    };

  • Sintaxe abreviada definições de classe, permitindo combinar a definição de um construtor e propriedades.
  • Novo tipo de retorno - estático.
  • Novo tipo - misto, que pode ser usado para determinar se uma função aceita parâmetros de tipos diferentes.
  • Expressão jogar para lidar com exceções.
  • Mapa fraco para criar objetos que podem ser sacrificados durante a coleta de lixo (por exemplo, para armazenar caches desnecessários).
  • Oportunidade usando a expressão “::class” para objetos (análogo a chamar get_class()).
  • Oportunidade definições no bloco catch de exceções que não estão vinculadas a variáveis.
  • Oportunidade deixando uma vírgula após o último elemento da lista de parâmetros da função.
  • Nova interface Stringável para identificar quaisquer tipos de string ou dados que possam ser convertidos em uma string (para a qual o método __toString() está disponível).
  • Novo recurso str_contains (), um análogo simplificado de strpos para determinar a ocorrência de uma substring, bem como as funções str_starts_with() e str_ends_with() para verificar correspondências no início e no final de uma string.
  • Função adicionada fdiv(), que executa uma operação de divisão sem gerar erro ao dividir por zero.
  • Mudado lógica de junção de strings. Por exemplo, a expressão 'echo "sum:" . $a + $b' foi anteriormente interpretado como 'echo ("sum: " . $a) + $b', e no PHP 8 será tratado como 'echo "sum: " . ($a + $b)'.
  • Apertado verificar operações aritméticas e de bits, por exemplo, as expressões "[] % [42]" e "$object + 4" resultarão em erro.
  • Implementado um algoritmo de classificação estável no qual a ordem de valores idênticos é preservada em diferentes execuções.
  • Fonte: opennet.ru

Adicionar um comentário