I metodi magici get e set - OOP in PHP

I metodi magici get e set - OOP in PHP

Cos'è il metodo magico __get?

Il metodo magico __get in PHP è un metodo che viene chiamato automaticamente quando si cerca di accedere a una proprietà di un oggetto che non è stata definita o che è stata dichiarata come privata/protetta.

Il metodo __get prende un unico parametro, che è il nome della proprietà che si sta cercando di accedere. Questo metodo può essere utilizzato per implementare la logica personalizzata per la lettura di proprietà inaccessibili o inesistenti.

Il metodo magico __get viene comunemente utilizzato quando si vuole implementare una logica personalizzata per la lettura di proprietà inaccessibili o inesistenti, ad esempio per accedere a dati protetti o privati in una classe, oppure per implementare una logica di caching per evitare di eseguire più volte lo stesso calcolo. Tuttavia, è importante utilizzare il metodo __get con attenzione, poiché l'uso improprio di questo metodo può portare a un codice difficile da mantenere e da comprendere.

Qual'é la sintassi del metodo magico __get?

public function __get($property) {
  // Logica personalizzata per la lettura della proprietà
}

Un esempio con il metodo magico __get.

class MyClass {
  private $myPrivateProperty = 'valore di default';
  
  public function __get($name) {
    if ($name == 'myPrivateProperty') {
      return 'valore personalizzato';
    }
  }
}

$obj = new MyClass();
echo $obj->myPrivateProperty; / Output : valore personalizzato

Cos'è il metodo magico __set?

Il metodo magico __set in PHP è un metodo che viene chiamato automaticamente quando si cerca di impostare il valore di una proprietà di un oggetto che non è stata definita o che è stata dichiarata come privata/protetta.

Il metodo magico __set viene comunemente utilizzato quando si vuole implementare una logica personalizzata per l'impostazione di proprietà inaccessibili o inesistenti, ad esempio per validare i dati prima di assegnarli a una proprietà, oppure per implementare una logica di caching per salvare il valore della proprietà su un database o su un file. Tuttavia, è importante utilizzare il metodo __set con attenzione, poiché l'uso improprio di questo metodo può portare a un codice difficile da mantenere e da comprendere.

Qual'è la sintassi del metodo magico __set?

Il metodo __set prende due parametri: il primo è il nome della proprietà che si sta cercando di impostare, mentre il secondo è il valore che si vuole assegnare alla proprietà. Questo metodo può essere utilizzato per implementare la logica personalizzata per l'impostazione di proprietà inaccessibili o inesistenti.

public function __set($property, $value) {
  // Logica personalizzata per l'impostazione della proprietà
}

Un esempio con il metodo magico __set.

class MyClass {
  private $myPrivateProperty = 'valore di default';
  
  public function __set($name, $value) {
    if ($name == 'myPrivateProperty') {
      $this->myPrivateProperty = $value;
    }
  }
}

$obj = new MyClass();
$obj->myPrivateProperty = 'nuovo valore';
echo $obj->myPrivateProperty;

In questo esempio, abbiamo dichiarato una classe con una proprietà privata chiamata myPrivateProperty. Quando viene cercato di impostare il valore di questa proprietà tramite l'oggetto $obj, il metodo __set viene chiamato automaticamente e imposta il valore personalizzato "nuovo valore" anziché il valore di default "valore di default".

Scritto da Donato Pirolo

Ciao, sono Donato, frontend developer con una smisurata passione per la SEO. Creo strumenti ad hoc per aiutare aziende e professionisti ad essere cercati sul web e trovare clienti.

Potrebbero interessarti

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