10 novidades do PHP 7

24 de setembro de 2015 0 Por Ramos de Souza Janones
Powered by Rock Convert

Conheça as 10 principais novidades do PHP 7 e como tirar melhor proveito no desenvolvimento web com a versão 7 do PHP.

 

O PHP 7 está prestes a ser lançada oficialmente, até o final deste ano de 2015.

A versão Release Candidate (RC) do PHP 7 foi lançada no dia 21 de agosto. Sendo uma versão RC, não haverá implementações novas no PHP 7.0, apenas correções de bugs.

Vou apresentar aqui algumas novidades e recursos novos desta versão do PHP.

Curso de PHP ERP com NFe.

1. Desempenho Fantástico

O PHP 7 teve seu motor remodelado. Com isso, houve um grande ganho de desempenho.

Em alguns casos, é possível alcançar até 9 vezes mais velocidade. Mas esse número pode variar conforme a plataforma e a aplicação utilizada nos testes.

Eu utilizei o script para benchmark criado pela própria equipe do PHP, disponibilizado junto com o código-fonte da linguagem. Em comparação com a versão 5.6, consegui aproximadamente 9 vezes mais velocidade usando o PHP 7. 

2. MySQL Removido

Desde o PHP 5.5, as funções mysql_* eram consideradas obsoletas. Ou seja, tudo indicava que elas seriam removidas em um futuro bem próximo.

Pois bem. A hora chegou.

No PHP 7, as funções mysql_* (como mysql_connect(), mysql_query() e outras) deixaram de existir. Agora é preciso utilizar MySQLi ou PDO.

Recomendo utilizar PDO, por ser mais robusta e ser independente de SGBD.

3. Funções ereg_* Removidas

Além das funções mysql_*, as funções ereg_* e eregi_* (como ereg(), ereg_replace, eregi() e outras) eram consideradas obsoletas desde o PHP 5.3.

Elas também foram removidas no PHP 7.

Agora é preciso usar as funções preg_*, da biblioteca PCRE, como preg_match e preg_replace.

As funções preg_* exigem delimitadores. Consequentemente, é possível utilizar modificadores, como “i” e “u”. O “i”, por exemplo, significa case-insensitive. Ou seja, se você usava eregi_*, passará a usar preg_*, sempre com o modificador “i”.

4. Erros Fatais e Exceções

No PHP 7, erros fatais passaram a ser Exceções. Isso quer dizer que eles podem ser tratados em bloco try/catch, sem interromper a execução do script.

Para exemplificar, vamos executar este código (no PHP 7, não no PHP 5):

ereg('^[a-z]$', 'php7');
echo "FIM";

 

Veremos este erro:

Fatal error: Uncaught Error: Call to undefined function ereg()...

 

E o texto “FIM” não será exibido. Isso ocorre, pois a exceção interrompe o script.

Agora execute este script:

try
{
    ereg('^[a-z]$', 'php7');
}
catch (Error $e)
{
    echo "Ocorreu um erro: " . $e->getMessage();
}

echo "FIM";

 

Você verá a seguinte saída:

Ocorreu um erro: Call to undefined function ereg()
FIM

 

LEIA TAMBÉM:  10 ferramentas para o desenvolvimento PHP moderno

Ou seja, nossa aplicação tratou a exceção e a execução continuou normalmente.

5. Construtores do PHP 4 Obsoletos

Antes do PHP 5, os construtores recebiam o mesmo nome da classe. Por exemplo:

class ClassePHP4
{
    function ClassePHP4()
    {
        echo "Construtor chamado";
    }
}

 

Isso continuou funcionando no PHP 5, mas era recomendado usar o método __construct, ficando desta forma:

class ClassePHP5
{
    public function __construct()
    {
        echo "Construtor chamado";
    }
}

 

O PHP 7 recomenda que seja usado método __construct em vez do método com o mesmo nome da classe. Ou seja, o uso de construtores no padrão do PHP 4 continuará sendo possível, mas é um recurso obsoleto (Deprecated).

Para testar isso, vamos executar este código:

Curso completo de Games, inclusive Realidade Aumentada.Powered by Rock Convert

6. Indução de Tipos: Scalar Types

PHP é uma linguagem NÃO tipada.

Aos poucos ela vem ganhando alguns recursos que a torna fracamente tipada.

Isso significa que podemos criar códigos mais consistentes e menos suscetíveis a erros e problemas.

O PHP 5 já possui o recurso de Indução de Tipos. É possível definir alguns tipos para parâmetros de métodos e funções. Mas só é possível definir dois tipos: arrays (o tipo “array”) e objetos (com o nome da classe).

A partir do PHP 7, poderemos usar outros tipos também: int, float, string e bool.

Esses tipos podem ser definidos nos parâmetros de funções e métodos, como já era feito no PHP 5. Mas agora há uma novidade: também poderemos definir o tipo do retorno.

7. Tipo de Retorno de Funções e Métodos

Seguindo a mesma ideia da Indução de Tipos que vimos anteriormente, o PHP 7 vai permitir definir o tipo de retorno de uma função ou método.

Basta seguir esta sintaxe:

function nomeFuncao() : tipo
{
    // corpo da função
}
Por exemplo:

function soma($x, $y) : float
{
    return $x + $y + 1.5;
}

 

E, claro, pode usar todos os tipos suportados: int, float, string, bool, array e objeto.

8. Novo Operador Spaceship ()

Esse operador recebe o nome de “Spaceship” em algumas outras linguagens, e é usado para comparação numérica.

Se você já usou a função strcmp(), com certeza vai entender esse operador sem dificuldades.

Mesmo se não usou, é simples de entender.

Veja estes exemplos:

var_dump(2  3); // retorna -1
var_dump(2  2); // retorna 0
var_dump(2  1); // retorna 1

 

Ou seja, o operador retorna um destes 3 valores:

– retorna -1 quando o primeiro operando é menor que o segundo
– retorna 0 quando os dois operandos são iguais
– retorna 1 quando o segundo operando é maior que o primeiro

9. Null Coalesce Operator (operador ??)

O nome parece complicado, mas ele faz algo bem simples. Ele é útil para verificar a existência de variáveis, como fazemos com valores de $_GET ou $_POST, usando isset.

Ele faz com que esta linha:

$email = $_POST['email'] ?? 'valor padrão';
… seja transformada nesta:

$email = isset($_POST['email']) ? $_POST['email'] : 'valor padrão';

 

LEIA TAMBÉM:  LINUX - Como ter duas versões do PHP no mesmo servidor Apache?

Super simples!

10. Classes Anônimas

O PHP, a partir da versão 5.4, permite a criação de Funções Anônimas. Elas são úteis especialmente para criação de callbacks ou para usar em parâmetros de funções, comoarray_map().

A partir do PHP 7, podemos criar Classes Anônimas também.

Podemos, por exemplo, fazer uma função retornar uma classe, definida ns própria expressãoreturn:

function createObject()
{
    return new class{
        public function test()
        {
            echo "test" . PHP_EOL;
        }
    };
}

$obj = createObject();
$obj->test();

 

Há outros casos de uso, como em testes de software. Você pode ver a proposta e alguns casos de uso no RFC que descreve esse recurso.

Conclusão

O PHP 7 traz diversas novidades. E, se você seguia as Boas Práticas e padrões que o PHP recomendava, a partir da versão 5.5, provavelmente terá pouquíssimos problemas (ou nenhum) para migrar para o PHP 7.

Outros tutoriais e dicas sobre PHP:

Aproveitando, segue nossa indicação:

Curso de Laravel – Plataforma EAD (LaraSchool), foi criado pelaEspecializaTi. Resumidamente: Neste curso você vai aprender a criar uma plataforma ead multi usuários, onde qualquer pessoa pode se cadastrar no sistema e postar cursos e comercializar e ainda aprenderá como integrar o Laravel com um dos gateways de pagamentos mais famosos que existem para produtos digitais, o HotMart. Espero que goste desta dica! 😉

Subscribe to our mailing list

* indicates required


Além de PHP e MySQL, deseja receber outro tema?

LEIA TAMBÉM:  PHP - Como fazer a função date() formatar uma data em português?

Email Format


Siga os bons!

Ramos de Souza Janones

Janones, é um empreendedor brasileiro apaixonado por empreendedorismo e tecnologia. Ao longo dos anos trabalhando com o desenvolvimento de softwares desktop desde a linguagem Clipper, passando pelo Delphi e atualmente com Java.

Optou pela formação de Publicidade e Marketing por sua segunda empresa de tecnologia ter participado do "boom" da internet nos anos 90 e na procura de melhorar seus conhecimentos em negócios.

Em razão da principal formação e profundos conhecimentos em programação e banco de dados, é capaz de realizar o desenvolvimento de aplicativos web, desktop e mobile com maior criatividade e inovação que profissionais de desenvolvimento com uma formação única e mais especifica, dedicada somente ao desenvolvimento de softwares.

Com toda sua experiência com empresas de software, sua formação e paixão por negócios escreveu o livro "Marketing para Empresas e Profissionais de Software", publicado pela editora carioca Ciência Moderna em 2012. Além de outros livros sobre programação.

Últimos posts por Ramos de Souza Janones (exibir todos)




Frontend Do Zero Ao Profissional