Lançado novo release PHP 8.4: visão geral das principais mudanças

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Lançado PHP 8.4: o que mudou e por que é importante



A comunidade de desenvolvedores recebeu o tão aguardado release PHP 8.4 — uma nova versão principal de uma das linguagens de programação web mais populares. A atualização trouxe uma série de melhorias significativas, incluindo os tão esperados property hooks, visibilidade assimétrica e uma otimização substancial de desempenho. Vamos analisar as principais mudanças que todo desenvolvedor PHP deve conhecer.



1. Property Hooks (Hooks de propriedades)

A novidade mais marcante é a possibilidade de definir getters e setters diretamente na declaração da propriedade da classe, sem escrever métodos separados. Isso simplifica radicalmente o trabalho com campos computados ou validados.



class User{    public string $name {        set => $this->name = trim($value);        get => ucfirst($this->name);    }}


Antes, para essa lógica, era necessário escrever métodos separados getName() e setName(). Os property hooks tornam o código mais limpo e legível.



2. Visibilidade assimétrica

Agora é possível definir diferentes níveis de acesso para leitura e escrita de uma propriedade. Por exemplo, leitura pública, mas escrita protegida:



class Post{    public private(set) string $title;}


Isso elimina a necessidade de criar getters e setters apenas para controle de acesso, mantendo o encapsulamento.



3. JIT aprimorado e desempenho

No PHP 8.4, o compilador JIT (Just-In-Time) foi significativamente reformulado. Os desenvolvedores do núcleo melhoraram a heurística de decisão de compilação e reduziram a sobrecarga na execução de caminhos de código quentes. De acordo com testes preliminares, o ganho de desempenho em benchmarks sintéticos varia de 10% a 25% em comparação com o PHP 8.3.



  • Aceleração de loops e funções recursivas
  • Processamento aprimorado de grandes arrays
  • Redução do consumo de memória no modo JIT em até 15%


4. Nova sintaxe: desestruturação de arrays com tipos

Foi adicionada a possibilidade de especificar tipos ao desestruturar arrays:



[$name, $age] = ['João', 30]; // era[ string $name, int $age ] = ['João', 30]; // tornou-se


Isso melhora a análise estática e torna o código autodocumentado.



5. Mudanças na biblioteca padrão

  • Novas funções: array_find(), array_find_key(), array_any() e array_all() — para um trabalho mais conciso com arrays.
  • Atualização do PCRE2: a biblioteca de expressões regulares foi atualizada para a versão 10.44, corrigindo vários erros raros.
  • Funções obsoletas: foram declaradas obsoletas session_set_cookie_params() (em favor de ini_set()) e várias funções internas.


6. Status de obsolescência (Deprecations)

No PHP 8.4, foram marcadas como obsoletas:

  • Alteração do tipo de retorno via #[\\ReturnTypeWillChange] — agora é necessária uma declaração explícita.
  • Chamada de isset() em não-arrays (por exemplo

Recommended Libraries