Accedere dall'interno della classe: $this



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

Ultimi articoli PHP

Sessioni PHP: cosa sono, come si usano

Dalla configurazione di PHP, alla gestione delle sessioni in un...

Continuous Integration: automatizziamo i client con Phing

Continuous Integration: automatizziamo i client con Phing. Esempi...

Archiviazione delle applicazioni PHP con Phar

Come incorporare intere applicazioni PHP all'interno di un singolo...

I traits in PHP 5.4

Cosa sono, a cosa servono e come si unsano i traits, la novità per...

PHP 5.4: il web server integrato

Impara ad usare il web server integrato nella versione 5.4 di PHP:...

Altri articoli

Guide PHP

Guida Yii Framework

Come creare applicazioni Web in modo semplice e veloce con il...

Guida Applicazioni Facebook con PHP

Come realizzare un'applicazione per Facebook. Dalle basi della...

Guida PHP con Windows e IIS

Installare ambienti per lo sviluppo e la produzione di applicazioni...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso PHP per Webmaster

11 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti