A nova versão do PHP 7.3 já está disponível na DialHost

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

Por tanto, 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:

<?php
class foo {
public $bar = <<<EOT
bar
EOT;
}

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

<?php
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 este artigo:

Compartilhar no facebook
Facebook
Compartilhar no whatsapp
WhatsApp
Compartilhar no twitter
Twitter
Compartilhar no linkedin
LinkedIn
Compartilhar no email
E-mail
Compartilhar no print
Imprimir

Sobre o autor:

Outros artigos:

Novidades do Blog

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