Cupom de US$10 da Digital Ocean

PHP 7.0 - Novas funcionalidades

PHP 7.0 - Novas funcionalidades

PHP é uma das linguagens de programação mais utilizadas na web. Grande parte desse sucesso se dá pela sua facilidade de aprendizado para quem está começando e por diversas ferramentas de mercado, como o Wordpress, que são consolidadas e tem uma grande base de usuários.

Em sua versão 7.0, uma das mais aguardadas nos últimos tempos, o PHP trouxe diversas novidades para o mercado.

1 - Velocidade

Os desenvolvedores trabalharam muito em diversos códigos da base do PHP para aumentar sua performance e diminuir o consumo de memória RAM.

Comparativos mostram ganhos de 30% em comparação com a versão 5.6.

2 - Declaração de Tipos (Type Declaration)

O PHP é conhecido por ser uma linguagem pouco tipada, ou seja, por padrão você não precisa declarar tipos de variáreis pois elas são reconhecidas automaticamente.

Para códigos mais simples e para quem está começando isso é bom, mas para aplicações mais complexas, onde diversos desenvolvedores trabalham juntos, o ideal é ter regras mais restritas.

Até a versão 5.6 nós apenas podíamos declarar tipos de objetos e arrays em parâmetros de funções e métodos.

<?php

function greeting(User $user)
{
    echo "Hi, ".$user->name;
}

log(new User("Guilherme")); // "Hi, Guilherme"
log("Guilherme") // Catchable fatal error: Argument 1 passed to log() must be an instance of Student, integer given

Tipos Escalares (Scalar Type Hints)

A partir do PHP 7.0 podemos declarar outros tipos de variáveis em parâmetros, além de objetos e arrays, agora podemos também declarar string, integer, floating e boolean.

Por padrão, o PHP vem setado com o modo restrito desabilitado (strict_mode=0), com isso o próprio PHP tenta fazer algumas conversões antes de exibir algum erro:

<?php

function sum(float $a, $float $b)
{
    return $a + $b;
}

echo sum(1.1, 2); // inteiro convertido para float, retorna float(3.1)
echo sum(1.1, "2.0"); // string "2.0" convertida para float(2.0), retorna float(3.1)
echo sum(1.1, "2 dias"); // string "2 dias" convertida para float(2), retorna float(3.1)

declare(strict_types=1); //modo restrito habilitado

echo sum(1.1, 2); // inteiro mesmo assim convertido para float(2), retorna float(3)
echo sum(1.1, "2 dias"); // Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type float, string given

Com o modo restrito habilitado, alguns casos não são permitidos e um erro é gerado, o que deixa o código mais seguro.

Declaração de Tipos de Retorno (Return Type Declarations)

Além de declarar os tipos nos parâmetros de funções e métodos, podemos declarar também qual o tipo de retorno esperado, vamos seguir o mesmo exemplo acima:

<?php

function sum(float $a, $float $b) : float
{
    return $a + $b;
}

Para declarar o tipo de retorno no php 7 e acima, basta inserir após os parênteses dos parâmetros da função/método o caractere dois pontos ":" e o tipo de retorno, nesse exemplo, float.

3 - Novos operadores

Para facilitar o desenvolvimento foram inseridos novos operadores já solicitados pela comunidade e já implementados em outras linguagens de programação. Nesses casos vou deixar o nome dos operadores em inglês.

Combined Comparison Operator (Spaceship Operator)

A sintaxe pode parecer estranha mas após entender seu funcionamento fica fácil de lembrar. O Spaceship operador trabalha com comparações parecidas com "menor e igual" e "maior e igual"

$compare = $a <=> $b
// Se $a < $b retorna -1
// Se $a = $b retorna 0
// Se $a > $b retorna 1

Null Coalesce Operator

Este operador é um dos que gera mais praticidade para algumas lógicas executadas diariamente. Ele substitui um if ternário em conjunto a um isset, que usamos com frequência para verificar se uma variável existe ou se é nula.

<?php

// Caso a variável page não exista, utiliza o valor default 0
$page= $_GET["page"] ?? 1;

// Isto equivale a:
$page= isset($_GET["page"]) ? $_GET["page"] : 1;

// A coalescência pode ser encadeada: isto irá retornar o primeiro valor encontrado
$page= $_GET["page"] ?? $_POST["page"] ?? 1;

Gostou das novidades? Deixe um comentário dizendo qual você mais usa no dia-a-dia!


Para uma lista completa com mais funcionalidades, confira o próprio site do PHP: https://www.php.net/manual/pt_BR/migration70.new-features.php

Compartilhe

URL

Você também pode gostar de:

Comentários