Corsi on-line

__toString, stringhe e metodi magici in PHP

Chi è particolarmente “allergico” alla programmazione per oggetti forse avrà qualche problemino a capire la reale utilità di un metodo come “_toString“, il fatto è che l’utilità dei metodi non può essere compresa se non all’interno di un contesto orientato agli oggetti, quindi le perplessità di chi applica l’approccio procedurale sono a rigor di logica comprensibili; “_toString” per esempio può essere dichiarato per effettuare l’override del comportamento di un oggetto quando questo viene restituito sotto forma di output stringa, come nel caso di un “echo” o di un “print”.

Diamo uno sguardo al seguente esempio di dichiarazione di una classe:

class Unicorno {
# costruttore
  public function __construct($nome) {
      $this->specie = 'Unicorno';
      $this->nome = $nome;
  }
# metodo
  public function __toString() {
      return $this->nome . " (" . $this->specie . ")\n";
  }
}

Abbiamo quindi una classe (“Unicorno”), un costruttore (“$nome”) e una funzione public che è poi il nostro “metodo magico” (“_toString”) ; quello che interessa a noi è però l’oggetto, grazie al metodo esso potrà infatti essere restituito a video direttamente tramite un’istruzione di stampa:

$x = new Unicorno('Pippo');
echo $x;

Questo principio risulta particolarmente utile in caso di ereditarietà, infatti una nuova classe che eredita quella esistente potrà avere metodi ereditati riscrivibili per qualsiasi necessità, ciò sarà possibile grazie all’override.

Post correlati
I più letti del mese
Tematiche