I metodi statici



I metodi statici stanno esattamente ai metodi non-statici come le proprietà statiche statiche stanno alle proprietà non-statiche. Ciò significa che anche i metodi statici sono dati di classe che non appartengono a nessuna istanza in particolare. Anch'essi devono essere preceduti dalla keyword static:

class MyClass {

        // metodi statici
        public static function sayHello() {
                echo "Hello!";
        }
        
        public static function sayHelloAgain() {
                self::sayHello();
                echo " Again!";
        }

}

// stampa "Hello!"
MyClass::sayHello();

// stampa "Hello! Again!"
MyClass::sayHelloAgain();

Ovviamente, dato che i metodi statici non sono legati alle istanze, non è possibile utilizzare la pseudo variabile $this al proprio interno. Tuttavia, anche se è una pratica davvero sconsigliata, è comunque possibile richiamare i metodi statici tramite le istanze senza causare errori fatali, cosa che non è assolutamente fattibile nel caso delle proprietà statiche:

// stampa "Hello!"
$myClass_1->sayHello();

// stampa "Hello! Again!"
$myClass_1->sayHelloAgain();

Dati dinamici e dati statici: gli operatori

Ora che abbiamo analizzato nel dettaglio tutte le componenti dinamiche e statiche che è possibile dichiarare all'interno di una classe, riassumiamo l'uso dei vari operatori che è necessario usare in collaborazione con questi elementi:

  • con i dati dinamici (proprietà e metodi) occorre utilizzare la pseudo variabile $this per riferirsi agli elementi dall'interno della classe, mentre si deve utilizzare il namespace dell'istanza per riferirsi dall'esterno. L'operatore da utilizzare in entrambi i casi è l'operatore di deferenziamento ("->")
  • con i dati statici (costanti, proprietà statiche e metodi statici) occorre utilizzare l'operatore di risoluzione dell'ambito ("::") unito al nome della classe che li contiene oppure alla keyword self
Elementi Operatore Pseudo variabili / keywords / accessori
Dinamici -> $this, nome istanza
Statici :: self, nome classe

Conclusione

Con lo studio completo delle proprietà statiche e dei metodi statici affrontati in questa lezione, si conclude la parte dedicata alle basi della programmazione ad oggetti in PHP: tutti i concetti fondamentali sono stati trattati con dovizia di particolari in queste prime lezioni. Con la prossima lezione affronteremo lo step successivo, ovvero le strutture complesse formate dalla combinazione di più classi che prendono il nome di gerarchie di classi, ed osserveremo come è possibile condividere informazioni e risorse per creare applicazioni modulari.

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