Ci sono molti scenari in cui si potrebbe voler restituire $this
da una funzione, ma il più popolare è "concatenamento di metodi".
Ad esempio, in un livello di astrazione SQL, potresti avere un oggetto che rappresenta una query, quindi chiamare una serie di metodi su di esso per estenderlo. Considera il seguente codice:
$query = $database->select();
$query->from('users');
$query->whereEquals('username', $username);
$query->orderBy('username');
$query->limit(1);
$user = $query->executeSingleRow();
Se ognuno dei metodi di $query
restituisce l'oggetto query modificato, possiamo invece scrivere come:
$user = $database
->select()
->from('users')
->whereEquals('username', $username)
->orderBy('username')
->limit(1)
->executeSingleRow();
La seconda versione è più vicina a come scrivere una query SQL effettiva e funziona senza introdurre la variabile exta $query
.