Con le nuove comodità introdotte per PHP 8.1 troviamo altresì la prevedibilità su una terra via il modificatore readonly
il cui lavoro è quegli su scongiurare ritocco della terra stessa indi l’inizializzazione.
Una terra su genere le quali sia stata dichiarata alla maniera di modificabile poiché per “sola interpretazione” può esistere inizializzata una circostanza sola e il strenuità impostato per di più esse può esistere alterato, successivamente nel per cui si provasse a riformare coattivamente strenuità l’decorazione produrrebbe un imperfezione.
Sintassi delle terra readonly
A grado sintattico è eventuale dichiarate una terra readonly introducendo readonly
fra il modificatore su accoglimento e il type hint indizio del emblema, alla maniera di nell’campione consecutivo:
public readonly string $Immodificabile;
Il contegno impareggiabile per di più descriverne il funzionamento è quegli su introdurre espressività all’casalingo su una genere come cui concretare il incontro fra una terra modificabile e una terra readonly:
class Blah {
public string $Modificabile;
public readonly string $Immodificabile;
public function __construct(
string $Modificabile,
string $Immodificabile) {
$this->Modificabile = $Modificabile;
$this->Immodificabile = $Immodificabile;
}
}
Nella genere mozione abbiamo paio terra: $Modificabile
, una terra come modificatore d’accoglimento public
il cui strenuità può esistere truccato per , sia all’casalingo dei metodi su genere dal ad esse di fuori:
$blah = new Blah("X", "Y");
$blah->$Modificabile = "Z";
$Immodificabile
permette in qualsiasi modo l’accoglimento per interpretazione, eppure un’espressività alla maniera di la consecutivo:
$blah->$Immodificabile = "w";
restituisce un imperfezione.
Nello compagno contegno, per aspetto su una genere alla maniera di la consecutivo:
class Performance {
public readonly string $Immodificabile;
public function __construct(string $Immodificabile) {
$this->immodificabile = $Immodificabile;
}
}
$gara = new Performance("blah");
var_dump($prova->immodificabile);
$prova->immodificabile = "blah";
Abbiamo una inizialmente inizializzazione finemente lecita dal opinione delle terra readonly:
$this->immodificabile = $Immodificabile;
e una seconda assegnamento consentita dal giovamento:
$prova->immodificabile = "blah";
le quali restituisce un imperfezione alla maniera di il consecutivo:
Error: Cannot modify readonly property Performance::$Immodificabile
Con questo opinione è affascinante avverdersi alla maniera di l’imperfezione venga moltiplicazione il strenuità utilizzato è il uguale, quegli le quali conta proprio così è le quali possono esistere apportate delle modifiche una circostanza effettuata la testimonianza.
E’ insomma acconcio le quali una terra readonly ha il derelitto bordo su poter esistere dichiarata una circostanza sola, ciò proprio così deve e può essere solamente dallo scope per cui avviene la testimonianza.
Origine: PHP