Qual è esattamente la differenza tra le variabili GLOBAL e STATICHE in PHP? E quale è preferibile usare, quando vogliamo usare una variabile in più funzioni?Qual è la differenza tra la variabile "GLOBAL" e "STATIC" in PHP?
Grazie.
Qual è esattamente la differenza tra le variabili GLOBAL e STATICHE in PHP? E quale è preferibile usare, quando vogliamo usare una variabile in più funzioni?Qual è la differenza tra la variabile "GLOBAL" e "STATIC" in PHP?
Grazie.
Una variabile statica implica solo che la variabile appartenga a una classe ma possa essere referenziata senza dover istanziare detta classe. Una variabile globale vive nel namespace globale e può essere referenziata da qualsiasi funzione in qualsiasi classe. I vars globali sono sempre disapprovati perché sono così facilmente abusati, sovrascritti, accidentalmente referenziati, ecc. Almeno con vars statici è necessario fare riferimento a Class::var;
Globale viene utilizzato per ottenere i vars globali che possono essere definiti in altri script, o non nello stesso ambito.
ad es.
<?php
$g_var = 1;
function test() {
var_dump($GLOBAL['g_var']);
global $g_var;
var_dump($g_var);
}
statico viene utilizzato per definire un var, che ha tutta la vita sceneggiatura, e init solo una volta.
ad es.
<?php
function test() {
static $cnt = 0;
$cnt ++;
echo $cnt;
}
$i = 10;
while (-- $i) {
test();
}
così si vuol dire, globale possono essere modificate in qualsiasi momento, ma statica è una specie di costante ?? –
@Non noto no, non intendo quello. variabile statico potrebbe essere cambiato liberamente. Ma l'operazione init viene eseguita solo una volta. Vedere il mio esempio, "static $ cnt = 0" eseguire solo una volta, quindi ogni volta che viene richiamata la funzione, la variabile viene aggiunta di una unità. – wedgwood
Grazie per la spiegazione contro la classe: var, ma per questo contesto io sono preoccupato per la variabile dichiarata STATIC in una funzione –