Pular para o conteúdo
Voltar às notícias Guias

PHP 8.6 chega em 19 de novembro: o que muda e o que pode quebrar

·23 de outubro de 2026· 3 leituras
PHP 8.6 chega em 19 de novembro: o que muda e o que pode quebrar

O PHP 8.6 está programado para chegar em 19 de novembro de 2026, depois de uma sequência de candidatas a lançamento. Não é uma versão de correção de segurança, como as de 21 de outubro, e sim a nova série, com recursos novos, avisos de descontinuação e uma mudança de padrões que merece atenção.

Novidades da linguagem

  • Aplicação parcial de funções: cria uma função a partir de outra com parte dos argumentos já preenchidos. Combina bem com o operador pipe.
  • Valores padrão em propriedades readonly: agora é possível, o que se encaixa em interfaces com property hooks.
  • clamp(): limita um valor entre um mínimo e um máximo, e funciona com inteiros, textos e objetos de data.
  • Classe Time\Duration: representa intervalos de tempo, com aritmética e comparação direta.
  • API de polling: acompanha eventos de entrada e saída (epoll, WSAPoll) pelo código do usuário. Não traz recursos assíncronos novos nem um laço de eventos embutido.
  • Reflexão: ReflectionProperty::isReadable() e isWriteable(), e ReflectionParameter::getDocComment(), útil para ferramentas de análise estática.
  • Enum SortDirection e enums com __debugInfo() para personalizar o var_dump().

A mudança que pode quebrar: padrões de sessão

Três configurações de sessão mudam de padrão, o que é bom para a segurança, mas pode afetar aplicações existentes:

  • session.use_strict_mode passa a 1: identificadores de sessão enviados de fora, sem arquivo correspondente, são recusados.
  • session.cookie_httponly passa a 1: o JavaScript deixa de ler o cookie de sessão por document.cookie.
  • session.cookie_samesite passa a Lax: POSTs entre sites deixam de enviar o cookie de sessão. Fluxos como login único (SAML) e formulários que enviam dados para outro domínio podem parar de funcionar.

Quem depende do comportamento antigo deve testar antes de atualizar, ou definir os valores explicitamente.

O que sai de cena (descontinuações)

  • spl_object_hash() (use spl_object_id()), is_double(), is_integer(), is_long() e doubleval().
  • Retornar de dentro de um bloco finally, e usar let, is ou namespace como identificadores.
  • O parâmetro $case_insensitive do define(), e a função metaphone().
  • Vários métodos do ArrayIterator (ordenação e serialização) e os métodos de CSV do SplFileObject.
  • No MySQLi, mysqli::stmt_init() e mysqli_get_charset().

Devo atualizar?

Não é urgente: a série 8.4 e a 8.5 seguem recebendo correções, e o PHP 8.2 chega ao fim do suporte em 31 de dezembro de 2026. Frameworks levam algum tempo para declarar compatibilidade, e o Drupal, por exemplo, ainda testa o 8.6 sem listá-lo como suportado. O caminho sensato é testar em ambiente separado, ler as notas de atualização e esperar a compatibilidade das suas dependências antes de levar a produção. E, até lá, mantenha a série atual com os patches de segurança em dia (veja a matéria sobre o PHP2Shell).

Matéria baseada em análises da comunidade; a data de lançamento e a lista final de mudanças podem variar. Confirme em php.net.

Sua semana em números 📬

Selic, CDI, inflação e as novidades das ferramentas — um e-mail por semana, sem spam.

Sem custo, descadastro em 1 clique em qualquer e-mail.

Leia também