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
// 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
$this
operatore di deferenziamento - con i dati statici
operatore di risoluzione dell'ambito
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.