mmm... $this si riferisce all'oggetto...
Variabili globali e locali:
Le variabili globali sono le variabili definite all'esterno di funzioni, nello script principale e che possono essere utilizzate da tutto il programma PHP escluso all'interno di funzioni. Viceversa per variabili locali intendiamo solo quelle contenute all'interno di funzioni, che non potranno essere usate all'esterno delle stesse.
Detto questo se immaginiamo una situazione dove due variabili hanno lo stesso nome ma sono diverse fra loro ossia una locale e l'altra globale, possiamo stare tranquilli che l'una non influenzerà l'altra e viceversa.
Esempio:
$a = 5;
$c = abc();
function abc(){
$a = 10+3;
print $a."\n";
}
print $a;
Scriveremo:
13
5
Visto quello asserito in precedenza possiamo dire che in questo caso le due variabili sono distinte fra loro e con due valori ben diversi.
Global:
Si può verificare un'eccezione alla regola globale/locale se per qualsiasi motivo vogliamo usare direttamente una variabile globale all'interno di una funzione.
Il problema si risolve con il comando global. Per capire basta vedere l'esempio qua sotto.
Esempio:
$a = 5;
$c = abc();
function abc(){
global $a;
print $a."\n";
}
print $a;
Scriveremo:
5
5
Riferimento a variabili:
Come nel linguaggio C possiamo riferirci alle variabili. Il problema nasce nel momento in cui manipoliamo una variabile globale in una funzione e vogliamo che cambi valore anche esternamente.
Risolviamo il tutto richiamando la funzione non con il nome della variabile, ma con il suo riferimento al nome.
La sintassi prevede di dichiarare la variabile fra le proprietà della funzione con il simbolo & (e commerciale) che la precede.
esempio:
$a = 5;
print $a."
";
$c = abc($a);
function abc(&$a){
$a++;
print $a."
";
}
print $a."
";
Scriveremo:
5
6
6
Da adesso il valore della variabile globale resterà variato con il