1
resposta

[Dúvida] Definir como readonly, e passar alguns tipos no construtor para os atributos só funcionam no php 8 pra cima?

Estou fazendo o curso de poo PHP , e fiz uns exercícios para fixar a aprendizagem, porém subi em uma pasta online para testar, e algumas coisas não funcionam. Como passar pelo construtor o tipo Protected e tb public readonly.

1 resposta

Como utilizar readonly e definir tipos no construtor no PHP 8?

A partir do PHP 8.1, foi introduzida a palavra-chave readonly, permitindo que atributos de uma classe sejam imutáveis após a inicialização. Isso significa que o valor de um atributo só pode ser definido uma vez, geralmente no construtor, e não pode ser modificado posteriormente.

Essa funcionalidade é útil quando se deseja garantir que certos valores permaneçam constantes durante todo o ciclo de vida de um objeto.

Definindo Tipos e Visibilidade no PHP 8

Além do readonly, o PHP 8 também trouxe melhorias na tipagem e na forma como os atributos podem ser definidos diretamente no construtor. É possível usar diferentes níveis de visibilidade, como:

  • public: Atributo acessível de qualquer lugar.
  • protected: Atributo acessível apenas dentro da classe e em suas classes filhas.
  • private: Atributo acessível apenas dentro da própria classe.

A combinação de readonly com essas visibilidades proporciona maior segurança e clareza no código, impedindo a modificação acidental de propriedades e reforçando o encapsulamento.

Considerações Importantes

  • readonly só pode ser usado a partir do PHP 8.1.
  • Ele é útil para representar valores que não devem ser alterados após a criação do objeto.
  • A tipagem forte junto com readonly ajuda a evitar erros e tornar o código mais previsível.

Essa abordagem melhora a legibilidade, a segurança e a manutenção do código ao seguir os princípios de programação orientada a objetos.