Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

235
Visualizações
¿Cuál es el beneficio de solo lectura en PHP 8.1?

readonly ahora está disponible en PHP 8.1, solo me pregunto para qué sirve. ¿Es eso para ayudar al editor a saber que esta propiedad es solo de readonly o para ayudar al cliente a saber eso o hay otro beneficio?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Las propiedades de readonly le permiten crear objetos inmutables o, al menos, propiedades inmutables.

De esa manera, puede estar seguro de que un valor no cambiará por accidente después de inicializarse, a lo largo de la vida del objeto.

Es un concepto muy similar a las constantes (establecidas a través de const o define ), aunque con dos diferencias importantes:

  • las constantes deben definirse en el momento de la "compilación", mientras que las propiedades de readonly se establecerán durante el tiempo de ejecución, generalmente durante la instanciación del objeto (por lo que varias instancias podrán contener diferentes valores *)
  • a diferencia de las constantes, que viven en el ámbito global, y en el caso de las constantes de clase, su valor está vinculado a la clase y no a la instancia.

Podría lograr lo mismo con una propiedad privada a la que solo se puede acceder a través de un getter. Por ejemplo, en "los viejos tiempos":

 class Foo { private DateTimeImmutable $createAt; public function __construct() { $this->createdAt = new DateTimeImmutable(); } public getCreatedAt(): DateTimeImmutable { return $this->createdAt; } } $f = new Foo(); echo $f->getCreatedAt()->format('Ymd H:i:s');

El único problema con esto es que requiere mucho código repetitivo.

Con PHP 8.1. lo mismo podría lograrse haciendo:

 class Foo { public function __construct( public readonly DateTimeImmutable $createdAt = new DateTimeImmutable() ) { } } $f = new Foo(); echo $f->createdAt->format('Ymd H:i:s')
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda