Nel mio progetto, ho una classe wrapper per $_SESSION
, quindi è possibile accedere alle variabili di sessione tramite $session->var
. Stavo cercando di verificare se sono stati fissati variabili di sessione o non utilizzo di isset
:
if (!isset($this->session->idUser)) {
...
}
ma isset
non restituisce nulla. Quindi nella mia classe di wrapper ho scritto la seguente funzione per testare cosa stava succedendo.
public function isItSet($var)
{
die(isset($_SESSION["id"]));
}
restituisce una pagina vuota. Ho provato:
public function isItSet($var)
{
die(is_null(isset($_SESSION["id"])));
}
ancora una pagina vuota. Poi ho provato:
public function isItSet($var)
{
die(isset($_SESSION));
}
Questo restituisce 1.
Qualcuno può dirmi perché si cerca di verificare se una variabile di sessione è impostata restituisce nulla?
Ti ricordi session_start(); ? Anche se potrebbe sembrare banale, dovresti assicurarti. – Repox
Sì, la sessione è iniziata nel costruttore di una classe genitore. die (session_id) restituisce una stringa come previsto. – Jormundir
Usa 'var_dump' invece di' die' o 'echo'. In PHP un 'falso' booleano che viene convertito in stringa (nel tuo caso per l'output) verrà convertito in una stringa vuota. 'var_dump' ti mostrerà il valore e il tipo effettivi. Questo è solo PHP di base, per prima cosa mettiti a tuo agio con la lingua. – hakre