这可能是一个愚蠢的问题,但我在这个部分2小时内陷入了这个愚蠢的问题。
我有这个函数检查特定配置文件的变量是否为空。 这是函数: -
include 'inc.config.php';
function not_valid_settings()
{
if((empty($_GLOBAL['id'])) || (empty($_GLOBAL['username'])) || empty($_GLOBAL['password']))
{
return true;
}
else
{
return false;
}
}
这是config inc.config.php文件:
$_GLOBAL=array();
$_GLOBAL['id'] = "asas";
$_GLOBAL['username'] = "asas";
$_GLOBAL['password'] = 'as';
函数调用
include 'inc/inc.functions.php';
if(not_valid_settings())
{
echo "Please enter correct entries in inc/inc.config.php";
exit();
}
出于某种原因,我总是得到请输入正确的详细信息。即使我的$_GLOBAL['username']='';
。
我在这做什么错?
答案 0 :(得分:2)
问题在于$_GLOBAL
似乎是PHP超全局,但事实并非如此 - PHP中没有这样的超全局。结果,这个变量无法在任何地方立即访问。如果你的函数添加global $_GLOBAL;
作为第一行,那么你的代码应该可以工作:
function not_valid_settings()
{
global $_GLOBAL;
也许您打算使用$GLOBALS
代替,但我强烈建议反对它。请改用$SETTINGS
这样的名称,不要忘记在需要访问设置对象的函数中使用global $SETTINGS;
。
通常,您应该避免选择以$_
开头的变量名,除非它们是PHP超级全局;这个前缀意味着一个超全局,而你的变量不是。这会造成不必要的混淆。
答案 1 :(得分:1)
$ GLOBALS是你的意思,虽然这不是一个好习惯。