function Test()
{
static $a = 0;
echo $a;
$a++;
}
Test();
Questo codice dovrebbe incrementare e stampare ogni volta che carico la pagina la variabile $a.
Invece non funziona!
Qualcuno sa come mai?
function Test()
{
static $a = 0;
echo $a;
$a++;
}
Test();
Questo codice dovrebbe incrementare e stampare ogni volta che carico la pagina la variabile $a.
Invece non funziona!
Qualcuno sa come mai?
una costante si definisce con define
in ogni caso non e' un file, quando lo script viene chiuso tutte le variabili sono cancellate e alla prossima riapertura riparte dalla definizione associata.
per mantenere il valore usa un file o il database.
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
L'uso di "static" in questo caso avrebbe senso richiamando la funzione Test() più volte all'interno dello stesso script: in questo caso vedresti il valore di $a realmente incrementato.Originariamente inviato da mcjennis
function Test()
{
static $a = 0;
echo $a;
$a++;
}
Test();
Questo codice dovrebbe incrementare e stampare ogni volta che carico la pagina la variabile $a.
Invece non funziona!
Qualcuno sa come mai?
Per fare quello che ti serve ricaricando la pagina, o ti appoggi a file/db come ti diceva piero, oppure utilizzi le sessioni (o un approccio misto, dipende poi da cosa ci devi fare con questo contatore)
Tutti hanno bisogno di credere in qualcosa.
Io credo che mi farò un'altra birra.
in pratica la variabile muore con la terminazione dello script...
A me serviva perchè pensavo di gestire un sistema di semafori per la mutua esclusione in php, quindi mi serve definire una variabile a livello server da cambiare a rosso quando in una determinata sezione c'è già un utente.
E' il tipico problema di evitare possibili inconsistenze di dati quando ci sono due admin...
Allora pensavo di trovare delle sezioni critiche su cui fare mutua esclusione.
Mi sa che a sto punto mi appoggio su db.
grazie