⊗ppOpMgTS 87 of 107 menu

Il metodo magico toString nella OOP in PHP

Il primo metodo magico che studiermo si chiama __toString. Esso viene chiamato quando si tenta di convertire un'istanza di classe in stringa. Cerchiamo di capire cosa significa. Supponiamo di avere questa classe User:

<?php class User { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

Creiamo un oggetto di questa classe:

<?php $user = new User('john', 25); ?>

Ora proviamo a stampare l'oggetto creato tramite echo:

<?php $user = new User('john', 25); echo $user; ?>

Il tentativo di stampare un oggetto tramite echo corrisponde a una conversione in stringa. In questo caso PHP darà un errore, poiché semplicemente gli oggetti non possono essere convertiti in stringa così.

Per eliminare l'errore, dobbiamo dire esplicitamente a PHP cosa fare quando si tenta di convertire un oggetto in stringa. A questo scopo esiste il metodo magico __toString.

Se nel codice della nostra classe creiamo questo metodo, allora il risultato di questo metodo (cioè ciò che restituisce tramite return) sarà la rappresentazione stringa dell'oggetto.

Supponiamo di volere che quando si tenta di stampare l'oggetto tramite echo, venga visualizzato il nome utente. Quindi creiamo il metodo __toString e restituiamo in esso il valore della proprietà name:

<?php class User { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } // Implementiamo il metodo specificato: public function __toString() { return $this->name; } public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

Verifichiamo:

<?php $user = new User('john', 25); echo $user; // stamperà 'john' - tutto funziona! ?>

Create una classe User, in cui ci siano le proprietà name e surn. Fate in modo che quando si stampa l'oggetto tramite echo sullo schermo venga visualizzata una stringa con il nome e il cognome dell'utente.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta