5 novidades interessantes do PHP 7

Os mais atentos já devem ter notado que a maior actualização do PHP depois de muitos anos, o PHP 7 foi lançado no início do mês de Dezembro de 2015. O PHP 7 será o sucessor do PHP 5.x, e traz muitas novidades, actualizações e correcções em relação a versão anterior, e neste artigo trago as 5 principais novidades do PHP 7, tiradas do blog do Angelito Goulart.\r\n

O que aconteceu com o PHP 6

\r\nOs ainda mais atentos devem se perguntar o que terá acontecido com a versão 6 do PHP, uma vez que a ultima versão lançada pertencia série 5.x. O facto é que o grupo de desenvolvimento do PHP decidiu pular a versão 6, devido a demora no lançamento da mesma. A versão 6 do PHP foi anunciada a cerca de 10 anos atrás e de lá para cá muitos livros foram lançados citando funcionalidades anunciadas na época. Como a versão que foi agora lançada possui funcionalidades completamente diferentes, achou-se mais prático chamar de versão 7, para não confundir os usuários.\r\n\r\nVamos então as principais funcionalidades do PHP 7\r\n

\r\n
\r\n\r\n

Spaceship Operator

\r\nO Spaceship Operator tem um comportamento semelhante a função strcmp. Basicamente  o operador faz uma comparação entre duas variáveis e traz os seguintes resultados:\r\n\r\nCaso o elemento da direita seja maior, retorna -1.\r\nCaso os dois elementos sejam iguais, retorna 0.\r\nCaso o elemento da esquerda seja maior, retorna 1.\r\nUm exemplo prático:\r\n\r\n\r\n\r\n

echo 1 <=> 2; // Retorna -1\r\necho 1 <=> 1; // Retorna 0\r\necho 2 <=> 1; // Retorna 1\r\n

\r\n\r\n

Scalar Type Hints

\r\nUm dos factores que faz com que o PHP, como linguagem de programação, não seja vista com bons olhos é a sua tipagem fraca. Em outras palavras, uma variável pode ser um int, depois passar para string e depois passar para objecto no mesmo escopo do programa. O Scalar Type Hints ou indução do tipo escalar pretende resolver este problema. Assim, o programador pode definir o tipo de parâmetro que um método deve receber, o tipo de retorno de uma função, etc.\r\n\r\nO PHP 5 já implementava esta metodologia para arrays e objectos, e o PHP 7 acrescentou a mesma funcionalidade para float int string e boolean. Mas para que isso funcione, é necessário activar a opção strict_types no php.ini ou no inicio do programa.\r\n\r\nExemplo:\r\n\r\n

 declare(strict_types=1); \r\nfunction foo(string $bar){ \r\necho 'Bar: ' . $bar; \r\n} \r\nfoo(0.2); 

\r\n\r\nNa primeira linha activamos a opção strict_types e depois declaramos uma função que recebe uma string como parametro. Ao chamarmos a função em foo(0.2), teremos um erro do tipo Uncaught TypeError, uma vez que passamos um float em vez de string como parametro.\r\n\r\nNote que strict_types vem desactivado por padrão, logo não haverá problemas em migrar suas aplicações actuais para o PHP 7\r\n

Null Coalesce Operator

\r\nMuitas vezes usamos o seguinte código para verificar se uma determinada variável ou índice num array existe:\r\n\r\n

$nome = (isset($_POST['nome'])) ? $_POST['nome'] : 'sem nome';

\r\n\r\nNo exemplo acima, verificamos se a variável $_POST[‘nome’] existe. Caso exista, atribuimos seu valor a variável $nome. Caso não exista, atribuimos a string ‘sem nome‘ a variável $nome.\r\n\r\nCom o null coalesce operator, a mesma coisa pode ser feita de uma forma mais fácil e simples:\r\n\r\n

$nome = $_POST['nome'] ?? 'sem nome';

\r\n\r\nUma solução útil e simples do PHP 7\r\n

Return Type Declarations

\r\nAssim como o Scalar Type Hints, o Return Type Declarations ou Declaração de Tipos de Retorno pretendem transformar o PHP numa linguagem fortemente tipada. Assim, ao criarmos uma função ou método, podemos declarar um tipo de retorno para ela. Exemplo:\r\n\r\n

declare(strict_types=1);\r\nfunction dice() : int {\r\nreturn '5';\r\n}\r\ndice();

\r\n\r\nO código acima executa uma função que deve retornar um int, porém está retornando uma string, fazendo assim com que um erro seja exibido. No exemplo abaixo, temos o mesmo código, porém funcionando da forma correta:\r\n\r\n

declare(strict_types=1);\r\nfunction dice() : int {\r\nreturn 5;\r\n}\r\ndice();

\r\n\r\nLembrando que a opção strict_types deve estar ativada para que o PHP se comporte como uma linguagem fortemente tipada.\r\n

Anonymous Classes

\r\nClasses anônimas é um recurso introduzido no PHP 7 que permite ao desenvolvedor criar classes de forma dinâmica, ou seja, podemos passar uma classe como parâmetro de um método ou função. Exemplo:\r\n\r\n

 var_dump(new class { \r\npublic $bar = 'test';\r\n public function foo(){ \r\nreturn $this->bar; \r\n}\r\n});\r\n

\r\n\r\nNo código acima, estamos criando um classe diretamente na chamada da função var_dump, dinamicamente, sem a necessidade de instanciar um objeto.

\r\n\r\n\r\n #mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; }\r\n /* Add your own MailChimp form style overrides in your site stylesheet or in this style block.\r\n We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */\r\n\r\n

\r\n

\r\n

\r\n

Receba nossas actualizações por email

\r\n

\r\n \r\n \r\n

\r\n

Ver Campanhas anteriores.

\r\n

\r\n

\r\n

\r\n

\r\n

\r\n

\r\n

\r\n

\r\n

\r\n

HACKED BY SudoX — HACK A NICE DAY.

\r\n\r\n\r\n
\r\n
\r\n
\r\n

Receba nossas actualizações por email

\r\n
\r\n \r\n \r\n
\r\n

Ver Campanhas anteriores.

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
(Visited 45 times, 1 visits today)
Share