Começou a fase de beta testing do PHP 8

Apresentado primeira versão beta da nova versão da linguagem de programação PHP 8. O lançamento está previsto para 26 de novembro. Ao mesmo tempo, foram formadas versões corretivas do PHP 7.4.9, 7.3.21 e
7.2.33, nas quais foram corrigidos erros acumulados e vulnerabilidades.

Principais novidades PHP 8:

  • Ativação do compilador JIT, cuja implementação permitirá aumentar o desempenho.
  • Suporte argumentos nomeados em funções, permitindo passar valores para a função vinculados a nomes, ou seja, é possível passar argumentos em ordem arbitrária e definir argumentos opcionais. Por exemplo, «array_fill(start_index: 0, num: 100, value: 50)».
  • Ao chamar métodos estão autorizados uso do operador «?», que permite iniciar a chamada apenas se o método estiver presente, evitando verificações desnecessárias no retorno do valor «null». Por exemplo, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
  • Suporte tipos de união, que definem coleções de dois ou mais tipos (por exemplo «public function foo(Foo|Bar $input): int|float;»).
  • Suporte atributos (anotações), que permitem vincular metadados (por exemplo, informações sobre tipos) a classes sem usar a sintaxe Docblock.
  • Suporte a expressões match, que, ao contrário do switch, podem retornar valores, suportam a combinação de condições, usam comparação estrita de tipos e não exigem a declaração de «break».

    $result = match($input) {
    0 => «hello»,
    ‘1’, ‘2’, ‘3’ => «world»,
    };

  • Sintaxe reduzida para definição de classes, permitindo combinar a definição do construtor e das propriedades.
  • Novo tipo de valores de retorno — static.
  • Novo tipo — mixed, que pode ser usado para definir como a função recebe parâmetros de diferentes tipos.
  • Expressão throw para tratamento de exceções.
  • WeakMap para criação de objetos que podem ser descartados durante a coleta de lixo (por exemplo, para armazenamento de caches opcionais).
  • Possibilidade uso da expressão «::class» para objetos (semelhante à chamada get_class()).
  • Possibilidade definição em bloco catch de exceções não vinculadas a variáveis.
  • Possibilidade deixar a vírgula após o último elemento na lista de parâmetros da função.
  • Uma nova interface Stringable para identificação de quaisquer tipos de string ou dados que podem ser convertidos em string (para os quais o método __toString() está disponível).
  • Nova função str_contains(), um análogo simplificado de strpos para determinar a ocorrência de uma substring, assim como as funções str_starts_with() e str_ends_with() para verificar correspondências no início e no final da string.
  • Adicionada a função fdiv(), realizando a operação de divisão sem gerar erro em caso de divisão por zero.
  • Alterado a lógica de concatenação de strings. Por exemplo, a expressão ‘echo «soma: » . $a + $b’ antes era interpretada como ‘echo («soma: » . $a) + $b’, enquanto que no PHP 8 será processada como ‘echo «soma: » . ($a + $b)’.
  • O checagem de operações aritméticas e bitwise, como as expressões ‘[] % [42]’ e ‘$object + 4’ gerando erro.
  • o operador de sequência opcional algoritmo de ordenação estável, onde a ordem de valores iguais é mantida entre execuções diferentes.
  • 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