在我的項目中,我有一個包裝類$_SESSION
,所以會話變量可以通過$session->var
訪問。我試圖檢查,如果會話變量被設置或不使用isset
:
if (!isset($this->session->idUser)) {
...
}
但isset
不返回任何東西。所以在我的包裝類中,我編寫了以下函數來測試發生了什麼。
public function isItSet($var)
{
die(isset($_SESSION["id"]));
}
這會導致一個空白頁面。我試過了:
public function isItSet($var)
{
die(is_null(isset($_SESSION["id"])));
}
還是一個空白頁。然後我想:
public function isItSet($var)
{
die(isset($_SESSION));
}
這將返回1.
誰能告訴我爲什麼想檢查是否會話變量設置返回任何內容?
你還記得session_start(); ?雖然它可能看起來微不足道,但你應該確定。 – Repox 2012-03-20 06:30:44
是的,會話是在父類的構造函數中啓動的。 die(session_id)按照預期返回一個字符串。 – Jormundir 2012-03-20 06:33:13
使用'var_dump'而不是'die'或'echo'。在PHP中,轉換爲字符串的布爾型「假」(在您的情況下用於輸出)將被轉換爲空字符串。 'var_dump'會顯示實際的值和類型。這只是基本的PHP,請先讓你自己熟悉語言。 – hakre 2012-10-16 07:55:37