我有一个php文件,里面有一个类,需要从我的配置文件中读取一个变量。配置文件包含在包含类和类本身的页面中(包括require_once)。但是,根据我得到的错误,我需要读取的变量($ cfg)在类文件中显然是未定义的:
注意:未定义的变量:第45行的/opt/lampp/htdocs/screia/obj/MemberProfile.class.php中的cfg
我尝试通过添加:
在配置文件中将其设为全局global $cfg;
但它仍然不会找到它。我有一个朋友的建议,可能在5.3.0中使用了新的命名空间,他们改变了包含语义。这是真的吗?
答案 0 :(得分:2)
你误解了global
的工作方式。您必须使用该变量将其放在函数体中。如:
class Something {
function foo() {
global $cfg;
// Code using $cfg here
}
}
这对你有用。但是,使用global
是一种不好的做法,您应该考虑在实例化时或通过方法将所需的配置传递给类。
答案 1 :(得分:0)
在抛出通知的行上的类文件中,尝试使用全局例如前缀$ cfg在读取变量之前global $cfg
。
另外,检查类文件中$ GLOBALS的内容,例如isset($GLOBALS['cfg'])