這應該工作,所以我真的很困惑,爲什麼它不工作。將PHP變量傳遞給包含的文件?
我正在檢查用戶是否使用每個管理頁面頂部的$ session類方法登錄。但是,我想根據用戶是否已登錄以及該用戶擁有哪個角色級別來動態調整頭文件。
所以我檢查$session->is_logged_in()
,然後我繼續定義的變量稱爲$logged = true
;稍後使用。然後我使用$user->find_by_id($session->id)
方法創建一個新的User對象,並將$user->role_level
存儲在名爲$role_level
的新變量中以便於使用。
這一切都發生在頁面頂部附近。在表單處理等頁面的下一頁,是include("../_layouts/header.php")
命令。然後,在header.php文件中,我使用諸如if(!$logged) { ... } else { ... }
之類的小檢查。然而...
我收到以下錯誤:
Notice: Undefined variable: logged in /home/hips/html/_layouts/header.php on line 119
Notice: Undefined variable: logged in /home/hips/html/_layouts/header.php on line 131
Notice: Undefined variable: logged in /home/hips/html/_layouts/header.php on line 138
怎麼能這樣呢?在包含header.php之前,我正在定義文件中的變量!不應該那樣工作?
僅供參考,一切工作正常,直到我試圖在header.php文件中使用$logged
。
'$ logged'是否在每種情況下都設置?代碼中沒有可能無法設置的方法? 如果您在腳本的頂部(定義之前)添加了'$ logged =「」;',會發生什麼? – 2009-10-21 14:54:07
它發生在我身上的一次,我在一個函數中包含了一個文件。除非您將變量作爲參數傳遞或用全局方式定義它們,否則它們在包含的文件中不可用。只是一個珍聞。 – nalply 2012-08-20 20:31:27