rho*_*son 5 php variables include
这应该有用,所以我真的很困惑为什么它不起作用.
我正在检查用户是否使用每个管理页面顶部的$ session类方法登录.但是,我想根据用户是否登录以及用户具有的角色级别动态调整头文件.
所以我检查$session->is_logged_in()然后我继续并定义了一个名为的变量$logged = true; 以后再用 然后我使用一个$user->find_by_id($session->id)方法来创建一个新的User对象并存储$user->role_level在一个新的var中,$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
Run Code Online (Sandbox Code Playgroud)
怎么会这样?在我包含header.php之前,我在文件中定义变量!不应该那样吗?
仅供参考,一切正常,直到我尝试$logged在header.php文件中使用.
变量确实会传播到包含的文件,因此,当您调用 include 时,该变量必定未设置:尝试检查是否已设置,然后找出此时未设置该变量的原因。
例如,如果您在“if”块内或函数内部定义了 $logged,那么它不会在其外部传播:您必须在最外层作用域中定义它(与调用 include 语句的级别相同) 。并且您必须为用户未登录的情况定义它,而不仅仅是用户登录的情况。如果该变量未初始化为 false,则检查 if(!$logged) 将发出警告。说 $logged = false; 在你工作之初。