Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 29 di 50
  • livello avanzato
Indice lezioni

Accedere dall'interno della classe: $this

Utilizzare la keyword $this per accedere alle componenti di una classe dal suo interno
Utilizzare la keyword $this per accedere alle componenti di una classe dal suo interno
Link copiato negli appunti

Negli esempi della lezione precedente abbiamo visto che è possibile richiamare i valori delle proprietà "a" e "b" della classe MyClass attraverso le istanze della stessa, e dunque, dall'esterno della classe. Ma se invece volessimo richiamare questi valori dall'interno della classe, tramite una funzione membro?

A questo proposito ci serve una nuova keyword che ci permetta di identificare le istanze dall'interno della classe. La keyword è $this e si riferisce sempre all'istanza corrente che stiamo utilizzando. Ecco un semplice esempio, in cui viene modificata la classe della lezione precedente:

class MyClass {
        // variabili membro
        public $a = 10;
        public $b = 20;
        // funzioni
        public function sayHello() {
                echo "Hello! " . $this->a . " " . $this->b;
        }
}
$myClass_1 = new MyClass();
$myClass_2 = new MyClass();
// ora la proprietà "a" dell'oggetto $myClass_2 è impostata a 20
$myClass_2->a = 20;
// stampa "Hello! 10 20"
$myClass_1->sayHello();
// stampa "Hello! 20 20"
$myClass_2->sayHello();

Come è possibile notare, $this ricopre il ruolo dell'istanza della classe corrente. Questo è un concetto di fondamentale importanza, che ci permette di accedere alle varie componenti (pubbliche) della classe direttamente dal suo interno.

Classi vs istanze

Possiamo ora astrarre il concetto affermando che una classe è una sorta di "garage" o di "officina" centrale dove vengono prodotte un numero variabile di istanze, che sono i mezzi finali con cui è possibile utilizzare le funzionalità della classe.

classe A /
        istanza 1
        istanza 2
        istanza 3
        
classe B /
        istanza 1
        istanza 2
        
classe C / 
        ...

Conclusione

In questa e nella lezione precedente abbiamo imparato tre concetti fondamentali della programmazione ad oggetti, senza i quali sarebbe impossibile proseguire lo studio dei componenti più avanzati:

  • concetto di classe
  • concetto di istanza
  • keyword $this

Nella prossima lezione analizzeremo nel dettaglio le due componenti principali di una classe: le proprietà (variabili) ed i metodi (funzioni).

Ti consigliamo anche