Parola chiave $this in PHP: cos’è e come si usa in una classe

Parola chiave $this in PHP: cos’è e come si usa in una classe

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.

php
class Dog {

    public $name;
    public $age;
}

Per leggere la proprietà della nostra classe dobbiamo quindi passare da $this, come qui sotto:

php
$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:

php
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
<?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.

php
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.

php
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.

php
// 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.

PHP

Damien Flandrin Sviluppatore web dal 2010, creatore di Gekkode e di Email Impact. Ogni articolo è testato su un progetto reale prima della pubblicazione. Contatti
Newsletter

I nuovi test, tutorial e progetti, via e-mail.

Test riproducibili, codice versionato, risultati datati. Mai spam.