Banco de dúvidas
Principais diferenças entre as versões do PHP
Oferecemos várias versões do PHP que você pode escolher para sua conta, podendo usar versões diferentes para sites e pastas diferentes ou mesmo para scripts diferentes na mesma pasta. As versões disponíveis incluem 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1 e 8.2. Isso permite a execução correta de vários scripts disponíveis na versão PHP específica para as quais foram desenvolvidos.
Importante: procure usar a versão mais atual do PHP que seja compatível com seu site, pois, quanto mais recente a versão, mais rápido seu site ficará, além de consumir menos memória do sistema. Mas, mesmo que você precise usar versões mais antigas por compatibilidade com seus scripts, nós aplicamos todos os patches de segurança disponíveis para cada versão, garantindo mais proteção para seu site.
A seguir, uma lista das principais diferenças entre as versões:
PHP 5.3 (lançado em 30 de junho de 2009) [changelog]
Em relação ao antigo PHP 4, o PHP 5.3 apresenta uma melhora em torno de 2x ou mais, especialmente devido à melhorias na Zend Engine, no gerenciamento de memória, otimizações internas e suporte à cache Opcode.
Obsoleto: ereg() e eregi() foram marcados como obsoletos e substituídos por preg_match().
PHP 5.4 (lançado em 1 de março de 2012) [changelog]
O PHP 5.4 representa uma melhora significativa de segurança com a remoção do register_globals, novas funções de hashing e atualização do OpenSSL. Trouxe também otimizações de loop e melhorias na extensão mbstring para suporte a caracteres multibyte.
Obsoleto: safe_mode e register_globals foram removidos.
PHP 5.5 (lançado em 20 de junho de 2013) [changelog]
O PHP 5.5 introduz OpCache como parte da distribuição padrão para acelerar a execução do PHP e aprimoramentos na otimização de código e gerenciamento de memória. O suporte nativo para chaves secretas na geração de tokens CSRF melhorou a proteção contra esse tipo de ataque.
Obsoleto: a função mysql_* foi marcada como obsoleta e substituída por mysqli ou PDO.
PHP 5.6 (lançado em 28 de agosto de 2014) [changelog]
- Expressões escalares constantes (Constant Scalar Expressions)
- Funções variádicas (Variadic Functions)
- Desempacotamento de argumentos (Argument Unpacking)
O PHP 5.6 trouxe melhorias notáveis na criptografia, com suporte para criptografia de curvas elípticas (Elliptic Curve Cryptography, ou ECC), que oferece alto nível de segurança com chaves de tamanho menor. Além disso, aprimorou a segurança na manipulação de sessões com configurações de segurança de sessão mais rígidas e melhorou a proteção contra ataques de injeção de SQL com a adição de suporte a sentenças preparadas declarativas.
Obsoleto: o operador @ para suprimir erros é desencorajado, o módulo mcrypt foi marcado como obsoleto.
PHP 7.0 (lançado em 3 de dezembro de 2015) [changelog]
- Declarações de tipos escalares (Scalar Type Declarations)
- Declarações de tipos de retorno (Return Type Declarations)
- Operador de coalescência nula (Null Coalescing Operator)
- Operador "nave espacial" (Spaceship Operator)
O PHP 7.0 introduziu o Zend Engine 3.0, proporcionando uma melhora de desempenho notável, geralmente 2x mais rápido. Além disso, a versão 7.0 trouxe melhorias na alocação de memória e otimizações no gerenciamento de recursos. Também foi aprimorada a detecção e correção de vulnerabilidades de segurança, tornando-o uma escolha mais segura em relação à versões anteriores.
Obsoleto: o operador += não suporta strings e arrays, funções iconv_set_encoding() e mbstring.encoding_translation foram marcadas como obsoletas.
PHP 7.1 (lançado em 1 de dezembro de 2016) [changelog]
Uma melhora na ordem de magnitude de 5% a 20% em relação ao PHP 7.0 é observada em muitos cenários. Em termos de segurança, o PHP 7.1 introduziu suporte para autenticação segura de e-mail (S/MIME), fornecendo criptografia e autenticação melhoradas para comunicações por e-mail, o que é especialmente importante em ambientes empresariais.
Obsoleto: mcrypt foi removido completamente.
PHP 7.2 (lançado em 30 de novembro de 2017) [changelog]
- Tipo hint de objeto (Object Type Hint)
- Sobrescrita de método abstrato
- Melhorias na inferência de tipos
- Hashing de senhas argon2
A velocidade geral do PHP foi aprimorada em torno de 10% a 20% em muitos cenários. Em relação à segurança, o PHP 7.2 introduziu a mitigação de ataques de injeção de código remotamente executável (Remote Code Execution) por meio de filtros de input e melhorias nas funções de hash de senhas para proteger melhor as credenciais do usuário. Também foram corrigidas vulnerabilidades de segurança e melhoradas práticas recomendadas de desenvolvimento seguro, tornando o PHP 7.2 uma escolha mais segura para desenvolvedores.
Obsoleto: create_function() foi marcada como obsoleta.
PHP 7.3 (lançado em 6 de dezembro de 2018) [changelog]
- Sintaxe flexível de heredoc e nowdoc
- Vírgulas finais em chamadas de função
- Atribuição de referência para list() (List Reference Assignment)
o PHP 7.3 otimizou ainda mais o Zend Engine, com melhorias notáveis na manipulação de arrays e execução de funções internas. Em termos de segurança, aprimoramentos no suporte para TLS (Transport Layer Security) e criptografia garantem comunicação mais segura com servidores remotos. Medidas de segurança adicionais foram implementadas para proteger contra ameaças comuns, incluindo injeção de código.
PHP 7.4 (lançado em 28 de novembro de 2019) [changelog]
- Funções seta (Arrow Functions)
- Propriedades tipadas
- Operador de atribuição de coalescência de nulos (Null Coalescing Assignment Operator)
- Operador de espalhamento em arrays (Spread Operator in Array Expression)
O PHP 7.4 continuou otimizando o Zend Engine introduzindo recursos como o compilador JIT (Just-In-Time), que acelera significativamente a execução de código PHP. Também foram corrigidas mais vulnerabilidades de segurança e implementadas práticas recomendadas de desenvolvimento seguro.
Obsoleto: unserialize_callback_func foi removida.
PHP 8.0 (lançado em 26 de novembro de 2020) [changelog]
O PHP 8.0 inclui o compilador JIT como padrão, que compila partes do código PHP em código de máquina nativa, otimizando a execução em tempo real. Aprimoramentos de segurança como a introdução do modo strict_types por padrão, tornam a coerção de tipos mais rigorosa, reduzindo a probabilidade de erros de tipo.
Obsoleto: o operador = para atribuição por referência foi desencorajado. A função create_function() foi removida.
PHP 8.1 (lançado em 25 de novembro de 2021) [changelog]
- Enumerações (Enumerations)
- Constantes de classe finais (Final Class Constants)
- Tipos de interseção (Intersection Types)
- Reflexão de assinatura de função (Function Signature Reflection)
A velocidade geral do PHP foi aprimorada com ainda mais otimizações. O PHP 8.1 introduziu a verificação de tipos de argumentos em funções internas, tornando o código mais seguro ao evitar a passagem incorreta de argumentos, prevenindo potenciais erros de lógica e aumentando a robustez e a segurança das aplicações PHP.
Obsoleto: a função implode() com parâmetros invertidos foi desencorajada.
PHP 8.2 (lançado em 8 de dezembro de 2022) [changelog]
- Função get_debug_type()
- Funções str_starts_with() e str_ends_with()
- Promoção de propriedade no construtor (Constructor Property Promotion)
O PHP 8.2 continuou aprimorando a velocidade de execução dos scripts PHP com otimizações adicionais no Zend Engine, melhorando ainda mais a eficiência do código e tornando as aplicações web ainda mais rápidas. O PHP 8.2 implementou medidas adicionais para fortalecer a segurança, incluindo aprimoramentos nas funções de manipulação de strings para reduzir vulnerabilidades comuns, como estouro de buffer.
Obsoleto: a função strchr() foi marcada como obsoleta.
Esta lista é um resumo e está longe de ser completa, apenas destaca as principais mudanças em cada versão que podem causar incompatibilidade em scripts de versões diferentes. Para mais detalhes, consulte os changelogs específicos de cada versão.
É sempre recomendado usar a versão mais nova suportada pelo script ou framework que está usando, ou o PHP mais novo possível se está desenvolvendo seu próprio script.