2012-03-15 130 views
1
print_r($_SESSION); 

給了我這樣的:會話變量已設置,但PHP報告它沒有設置?

 
[post] => 
[verify] => 3bae5359ea60d7f00d553ae5d091ae4b 
[token] => 

標記設置,但空,對不對?當我執行此操作時:

if (!isset($_SESSION['token'])) { 
    die("Token not set"); 
} 

該腳本死亡。這是爲什麼發生?

+1

該值可能爲空。 – 2012-03-15 06:58:49

回答

3

documentation -

布爾isset(混合是$ var [,混合$ ...])

isset確定是否變量被設置,而不是NULL

另外 -

返回值:返回TRUE如果var存在且其值不等於 NULL,否則返回FALSE。

因此,如果提供的參數包含NULL或者它根本不存在,那麼isset將返回FALSE。這正是您的腳本所發生的情況,並因此而死亡。

+0

啊,傻了。謝謝。 (當它讓我在10米時會接受) – Norse 2012-03-15 07:00:16

1

$ _SESSION ['token']中沒有任何值,這就是爲什麼它在條件下死亡並死亡的原因。