Proprietà readonly - OOP in PHP

Proprietà readonly - OOP in PHP

In PHP 8.1 è stata introdotta la proprietà "readonly", che indica che una proprietà di un oggetto può essere solo letta, ma non può essere modificata. La proprietà "readonly" è simile alla costante di classe, ma a differenza delle costanti di classe, una proprietà "readonly" può essere istanziata in un oggetto e il valore può essere modificato solo durante l'inizializzazione dell'oggetto.

Sintassi utilizzando readonly

class MyClass {
  public function __construct(
     public readonly string $name) {
    $this->name = $name;
  }
}

Esempio utilizzando la proprietà readonly

<?php
class myClass
{
    public function __construct(
        public string $nome = "",
        public int $eta = 0,
        public readonly string $segnoZodiacale = "Pesci" //definiamo una proprietà di sola lettura
        ){
    }

    public function riepilogo(){
        return "Nome : " . $this->nome . "\n"
        . " Età : " . $this->eta . "\n"
        . " Segno Zodiacale : " . $this->segnoZodiacale; 
    }
}
// In fase di instanziamento, possiamo modificare il valore della proprietà
$utente1 = new myClass(nome : "Donato", eta : 33, segnoZodiacale: "Acquario");
$utente1 = new myClass(nome : "Martina", eta : 30, segnoZodiacale: "Vergine");

echo $utente1->riepilogo();
$utente2->segnoZodiacale = "Toro"; // Non è possibile modificare la proprietà avremo un Fatal error
echo $utente2->riepilogo();
?>

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Copyright © 2023
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram