
Introduzione
$this è una delle cose più importanti e più utili della programmazione a oggetti in PHP. E, purtroppo, è anche una di quelle che si trascurano: in molti hanno sentito parlare di questa parola chiave, ma non sanno davvero come usarla.
In questo articolo ti spiego in breve che cos’è $this e come funziona. Se non hai ancora nessuna base di programmazione a oggetti, ti conviene dare prima un’occhiata a quella: capirai molto meglio quello che segue.
Che cos’è $this e come funziona?
La parola chiave $this ci permette di usare i metodi e le proprietà della nostra classe. In pratica possiamo chiamare un metodo o leggere una proprietà dall’interno della classe stessa.
Come esempio, cominciamo creando una classe semplice chiamata Dog. La riutilizzeremo per tutti gli esempi che seguono.
class Dog {
public $name;
public $age;
}
Per leggere la proprietà della nostra classe dobbiamo quindi passare da $this, come qui sotto:
$this->name
L’esempio qui sopra mostra semplicemente come si scrive la parola chiave. Nota che bisogna togliere il $ davanti a $name: la proprietà $name si scrive senza dollaro dopo la freccia. Vale la pena ricordarselo, altrimenti rischi di non capire perché il codice non gira come dovrebbe.
La parola chiave $this e i metodi
Usiamo ora $this dentro un metodo della nostra classe:
class Dog {
public $name;
public $age;
public function intro(){
echo 'Voici ' .$this -> name . ' et il a ' .$this -> age . 'ans.';
}
}
Perché la funzione produca qualcosa dobbiamo creare un oggetto della classe, assegnare i valori alle proprietà e poi chiamare il metodo pubblico:
<?php
// Istanziare
$blacky = new Dog();
// Aggiungere la proprietà name
$blacky->name = 'Toffee';
// Aggiungere la proprietà age
$blacky->age = '2 months';
E infine dobbiamo chiamare la nostra funzione.
echo $blacky->intro();
Quello che abbiamo appena fatto è portare le proprietà della classe dentro la funzione. L’output sarà qualcosa del genere:
C’est Toffee et il a 2 mois.
Con $this possiamo anche chiamare un metodo dall’interno di un altro metodo della stessa classe. Ecco un esempio veloce, con una classe nuova, che usa ancora $this.
class Man{
public $name;
public function say(){
echo 'Bonjour ' . $this->name;
}
public function hello(){
$this->say;
}
}
Ora creiamo il nostro oggetto, assegniamo i valori e richiamiamo la funzione.
// Istanziare l'oggetto
$john = new Man();
// Aggiungere il nome
$john->name ='john';
// Chiamare il metodo hello()
echo $john->hello();
Il risultato dovrebbe essere
Bonjour John
Ecco come si usa $this dentro un metodo per chiamare un altro metodo della stessa classe.
Conclusione
Come vedi, nel complesso è parecchio comodo. Certo, ci vuole un po’ di tempo per prendere l’abitudine di metterlo nel codice, ma una volta che ci hai fatto la mano lo userai ventiquattr’ore su ventiquattro.


