5 novos recursos no Php 7

5 novos recursos no Php 7

Autor Bio

Este estudo de caso é um post convidado escrito por Kaira Clark Works na Xicom Technologies Ltd - uma empresa de desenvolvimento de aplicativos da Web CakePHP. Ela está sempre feliz em compartilhar sua paixão pelo marketing e desenvolvimento da web. Se você está planejando contratar uma equipe dedicada para uma presença on -line brilhante, ela é a única para você.

5 novos recursos no Php 7

Todas as coisas consideradas, 2015 tem sido um ano essencial para todos os designers de PHP e, após onze anos, adaptação para 5.0 Lançamento, há outro desenvolvimento que é, a longo prazo, chegando ao seu caminho. No entanto, considere em diferentes destaques de desenvolvimento, pense em qual método sua variante PHP afetaria sua base de código PHP atual? Basta avaliar o que realmente mudou no PHP? Com que segurança você pode lidar com o Redesigns do PHP? Aqui, neste post, você obterá todas as soluções para suas perguntas e, no final. Então, vamos ao cerne da questão do exame agora.

Melhorias de execução

As atualizações de execução são provavelmente uma das principais motivadas entre os desenvolvedores sobre por que todos devem ter um relatório em cada servidor quando há uma chegada da variante estável do PHP. A refatoração do centro apresentada pelo telefone RFC torna o PHP 7 mais rápido que o HHVM. Os benchmarks oficiais são dignos de nota: a maioria dos aplicativos normais em execução no Php 5.6 continuará executando em todos os eventos duas vezes mais rápido no Php 7.

Armadilhas de compatibilidade com versões anteriores

Agora, tenhamos uma conversa sobre alguns fatores essenciais do PHP que podem eventualmente quebrar um aplicativo legado em execução em versões mais antigas do PHP.

  • Sintaxe variável uniforme

Resolve uma série de toda inconsistência no momento da avaliação de expressões variáveis-variáveis. Considere o código abaixo mostrado:

 empresa de classe public $ emp_name = 'madhur; public $ EMP_DES = 'Engenheiro de software';  $ Company = new Company (); $ propriedade = ['primeiro' => 'emp_name', 'segundo' => 'info']; eco "Nome do Nemploye é" . $ Company-> $ Property ['First'] . "nn"; 

No Php 7, a expressão $ Company-> $ Property ['First'] é avaliado como $ Company-> $ propriedade ['primeiro']. O intérprete avaliará $ Company-> $ Property First.

Graças à nossa nova sintaxe variável da esquerda para a direita, que torna todas as expressões válidas que não foram possíveis na versão inicial do PHP. Considere a aula a seguir para uma melhor compreensão:

 empresa de classe public static $ location = 'ncr'; função pública getBranches () return ['jaipur' => function () return "leste e oeste;, 'Chandigarh' => function () return 'norte e sul';]; função pública getBranchesof ($ alguém) return $ this-> getBranches () [$ alguém]; função estática pública getNewCompany () return New Company (); 

O PHP 7 torna possível criar associações aninhadas com diferentes combinações entre os operadores:

$ Company = New Company (); eco "n" . $ Company-> getBranches () ['Jaipur'] () . "nn"; eco "n" . $ Company-> getBranchesof ('Chandigarh') () . "nn"; 

Este snippet de código geraria um erro de análise no Php 5, mas combina bem com o PHP 7.

Trabalhando com erro fatal com várias cláusulas "padrão"

Este é, novamente, um caso controverso que se refere a mais erros lógicos. Não faz uso de várias cláusulas padrão em um interruptor apenas porque nunca ocorreu nenhum aviso de erro. No Php 7, você encontrará um erro fatal: “As declarações de switch contêm apenas uma cláusula padrão”.

Exceções do motor em PHP

As exceções do motor funcionam como um procedimento de manuseio de erros no aplicativo. Portanto, todos os seus erros fatais fatais e recuperáveis ​​existentes são substituídos com eficiência por exceções, para capturar facilmente todos os erros referidos e tomar medidas contra lidar com esses erros.

Vamos nos referir ao código abaixo sobre como lidar com a implementação das exceções do motor para manter a compatibilidade com fáceis de compatibilidade:

 set_error_handler (function ($ code, $ message) echo "error $ code:" . $ mensagem . "nn"; ); função a (ArrayObject $ b) return $ b;  um teste"); eco "Hello World"; 

Esse código recupera efetivamente o erro causado pelo tipo de incompatibilidade quando você chama a função A () com a ajuda de String como um parâmetro.

Olá Mundo

Esta execução continuará porque um erro foi tratado com eficiência. No Php 7, ele gerará uma exceção do TypeError que não é um erro. Portanto, neste caso, um manipulador de erros personalizado não será chamado, e esta é a saída abaixo que você encontrará:


ERRO FATAL: Uncathed TypeError: Argumento 1 Passado para um () deve ser uma instância de ArrayObject, string dada, chamada em/vagrant/tests/test04.PHP na linha 12 e definido em/vagant/tests/test04.PHP: 7
Stack Trace:
#0/Vagrant/Tests/Test04.Php (12): A ('Teste')
#1 main
Jogado em/Vagrant/Tests/Test04.PHP na linha 7

Aqui uma execução vai parar, pois a exceção não é pega. Para superar esse problema, deve -se encontrar as exceções usando os blocos de tentativa/captura. Observe que a hierarquia de exceção mudará para acomodar as novas exceções do motor com o mínimo código legado. Consulte o seguinte padrão abaixo:

  • Interface lança
    • Exceção implementos arremessáveis
      • Errorexception estende a exceção
      • RUNTimeException estende a exceção
    • Erro implementa o lançamento
      • TypeError estende o erro
      • Parseerror estende o erro
      • AssertionError estende o erro

O padrão acima significa que uma nova exceção de captura é agora um jogável em vez de exceção.

Recursos de linguagem recém -adicionados

Vamos ver o que inclui?
Novos operadores

1. -> Operador de nave espacial/ comparação
O operador de naves espaciais é indicado como, também conhecido por um nome combinado de comparação que é usado para permitir uma comparação acorrentada.

Tem uma expressão seguinte:
$ a $ b

1. A expressão avalia para -1 se $ a for menor que $ b
2. 0 se $ A é igual a $ B
3. 1 Se $ A for maior que $ B.

No geral, ele pode ser usado como seguinte expressão:

($ A $ B) ? 1: 0)

2 -> O operador NULL Coalesce é indicado como ?? Isso mantém uma verificação se um valor está definido para usá -lo.

Dicas do tipo escalar

Dicas do tipo escalar são um dos atributos mais conhecidos incluídos na linguagem PHP que utiliza números inteiros, carros alegóricos, cordas e símbolos booleanos como dicas de tipo para trabalhar com funções e métodos. Dicas do tipo escalar são não restritivas por padrão que significam que, quando você passa um valor de flutuação para um número inteiro, o parâmetro, ele apenas o suprime para acender o formato sem nenhum erro de erro.

Portanto, para superar esse problema, é essencial permitir um modo rigoroso que lançará erros quando qualquer tipo escalar ilegal for passado como um argumento. Vamos nos referir ao código gerado abaixo:

 função dupla (int $ valor) return 2 * $ value;  $ a = duplo ("5"); var_dump ($ a); 

Para garantir que os números inteiros possam ser transmitidos para a função dupla e, em seguida, habilite um modo rigoroso, incluindo os padrões da diretiva (strict_types = 1) como primeira linha em seu script:

 declarar (strict_types = 1); função dupla (int $ valor) return 2 * $ value;  $ a = duplo ("5"); var_dump ($ a); 

Este código irá gerar um Erro fatal: Uncathed TypeError: Argumento 1 Passado para Double () deve ser do tipo inteiro, string dada.

Retorno do tipo dicas

Outro novo recurso significativo que é adicionado ao PHP 7 é sua capacidade extrema de permitir o tipo de retorno de métodos e funções; que se comporta como um tipo escalar sugere. Cuidado com o código gerado abaixo:

 função a (): bool return 1;  var_dump (a ()); 

Este snippet de código é executado com eficiência sem avisos, e o valor retornado é convertido em formato bool automaticamente. Ao ativar o modo rigoroso, é gerado um erro fatal:

ERRO FATAL: UNBABSADO TIPO EERROR: O valor de retorno de A () deve ser do tipo booleano, número inteiro retornado

Esses erros são um tipo de exceção que é capturada e manuseada usando os blocos de tentativa/captura.

Conclusão

Espero que você goste de trabalhar com toda a nova versão do Php 7. Consulte Mais informação