Conheça as principais mudanças na nova versão da linguagem de programação PHP 7.3.

Oferecemos, nesta postagem, uma visão geral dos recursos e das alterações que consideramos mais relevantes.

A última versão do PHP 7.3 está aqui! Com isso, surgem novos recursos úteis, funcionalidades, depreciações, um bom número de correções de erros e um aumento no desempenho.

Opção para fazer json_encode e json_decode lançar exceções em erros

O PHP tem duas funções para lidar com JSON: json_decode () e json_encode().

Infelizmente, nenhum têm um tratamento de erros ideal. O json_decode() retorna NULL dá erro, NULL também é um resultado válido se decodificar o JSON “null”. Só é possível saber se ocorreu um erro chamando json_last_error() ou json_last_error_msg(), que retorna o estado de erro global.não haveria confusão entre valores de erro e resultados corretos

Portanto, alterar imediatamente o comportamento padrão dessas funções para lançar exceção seria um problema significativo de compatibilidade com versões anteriores. De outro lado, produzir um Warning não é ideal para erros previsíveis que não sejam bugs ou erro de sintaxe (como decodificação JSON quando é uma entrada do usuário).

Na versão 7.3 temos a adição de uma nova flag (JSON_THROW_ON_ERROR) de opção para json_decode(). Quando passado essa flag, o comportamento de erro dessas funções é alterado. O estado de erro global não é modificado e uma exception do tipo JsonException é lançada.

Função is_countable()

No passado, o PHP 7.2 foi adicionado um Warning ao tentar contar objetos incontáveis e, a partir disso, todos devs foram forçados a procurar e alterar seu código para evitar esse Warning. Um código parecido com o seguinte começou a ser utilizado para evitar este Warning:

if (is_array($foo) || $foo instanceof Countable) {
return count($foo);
}

A proposta a criação de método que retorne TRUE ou FALSE para indicar se um objeto é contável. A sintaxe ficou da seguinte forma:

if (is_countable($foo)) {
// $foo é countable
}

Mais exemplos de uso podem ser encontrados na Wiki oficial do PHP.

Atribuições de referências em list()

O PHP tem atribuição de list() e atribuição por referência há muito tempo. No entanto, até agora não era possível usar a atribuição de referência com list(). A versão 7.3 traz uma sintaxe que permite isso.

Um fato interessante é que as solicitações para esta implementação são de aproximadamente 18 anos atrás, como podemos ver neste e neste request.

A nova sintaxe ficou da seguinte forma:

$array = [1, 2];
list($a, &$b) = $array;

Que é equivalente a fazer:

$array = [1, 2];
$a = $array[0];
$b =& $array[1]

Também é possível usar essa nova abordagem para listas aninhadas. A especificação completa pode ser vista na documentação oficial do PHP.

Sintaxe mais flexibilidade para o Heredoc e Nowdoc

As sintaxes rígidas do heredoc e nowdoc faz com que eles sejam evitados pelos desenvolvedores, pois seu uso no código pode parecer feio e prejudicar a legibilidade. Foram introduzidas duas alterações às atuais sintaxes heredoc e nowdoc para melhorar esta questão:

  • Para permitir que o marcador de fechamento seja indentado, e;
  • Para remover o novo requisito de linha após o marcador de fechamento

Exemplo:

Antes, o código tinha que ser:

class foo {
 public $bar = <<<EOT
 bar
 EOT;

E agora pode ser (detalhe para a indentação):

class foo {
    public $bar = <<<EOT
    bar
    EOT;

Mais mudanças foram feitas na sintaxe, como a necessidade de quebrar a linha após o marcador de fechamento. Todas as mudanças realizadas neste sentido podem ser conferidas diferentemente na RFC do PHP.

Permitir trailing comma em chamadas de função e método

Permitir uma “vírgula à direita” em chamadas de função torna mais conveniente acrescentar argumentos em muitos contextos em que é comum chamar uma função com muitos argumentos.

O que significa que inserir parâmetros adicionais às chamadas evitará tocar na linha anterior para adicionar uma nova vírgula, que seria ruim para o histórico do controle de versão. Alguns exemplos de uso dessa nova sintaxe são:

Inicializando um array

$foo = [
 'foo',
 'bar',
 ];

Chamando um método

unset(
$foo,
$bar,
$baz,
);

Passando parâmetros para um template engine

echo $twig->render(
'index.html',
compact(
'title',
'body',
'comments',
)
);

Mais exemplos de uso podem ser encontrados na Wiki oficial do PHP.

Além do que comentamos, a nova versão do PHP traz outras features, correções de bugs e também a depreciação de alguns métodos. A lista de métodos que foram marcados para serem removidos em futuras versões, você pode encontrar aqui.

Disponibilidade do PHP 7.3 na DialHost

A versão está sendo disponibilizada de forma gradativa para todos os clientes.

Clientes com a versão já disponibilizada, podem atualizar a versão de seu PHP para 7.3 diretamente em nosso painel, em segundos!

php73

Já está usando o PHP 7.3 em seus projetos? deixe seu comentário!

Compartilhe:

Sobre o autor:

Sobre o autor:

Posts Relacionados:

Novidades do Blog

Deixe seu e-mail abaixo para passar a receber promoções e novidades do nosso Blog.