2012-04-22 9 views

risposta

2

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;

+2

Grazie per la spiegazione contro la classe: var, ma per questo contesto io sono preoccupato per la variabile dichiarata STATIC in una funzione –

1

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(); 
} 
+0

così si vuol dire, globale possono essere modificate in qualsiasi momento, ma statica è una specie di costante ?? –

+1

@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

Problemi correlati