10 novidades do PHP 7

24 de setembro de 2015 0 Por Ramos de Souza Janones
Do Zero ao Profissional com PHP. Mais de 2.300 alunos recomenda.Powered by Rock Convert

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

 

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";
    }
}

 

LEIA TAMBÉM:  Login em PHP - Conceitos e técnicas

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:

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:  Mibew – Instale e Configure uma Central de Atendimento Online

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:  10 ferramentas para o desenvolvimento PHP moderno
Email Format


Powered by Rock Convert

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)