使用CodeIgniter 3.0.3時,文檔指出會話數據可以通過幾種不同方式檢索,包括$_SESSION['item']
和$this->session->item
。這是真的。無論我如何設置會話變量,我都能看到我可以用這兩種方式來回顯這個值。使用CodeIgniter 3.x中的空()和isset()檢查會話變量
現在,隨着該會話變量填充,我可以檢查這樣的空條件:if(empty($_SESSION['item']))
,它的計算結果爲bool(false)
,正如我所期望的那樣。但是,如果我以這種方式檢查相同的會話變量:if(empty($this->session->item))
它評估爲bool(true)
,這不是我所期望的(因爲我可以在下一行回顯它的值)。爲什麼這兩種不同的方式來檢查空閒狀態的評估方式是不同的?
哇。這是奇怪的行爲。如果變量具有可以回顯給屏幕的值(尤其是標量值),那麼'empty()'函數將其視爲空是有點嚇人的。 – MonsoonJoe