我在这里疯了。以下简单的if条件不会产生正确的输出。
$xxx = 1;
if($xxx == 1)
define('DEBUG', true);
else
define('DEBUG', false);
var_dump($xxx);
var_dump(DEBUG);
die();
输出:
int(1)
bool(false)
我完全没有理由将DEBUG常量设置为true。 PHP的类型杂耍应该允许这个if语句。即使我在变量前放置一个intval,它仍然会产生false作为输出。
编辑2: 我将上面的确切代码复制到一个新文件中,然后生成预期的输出。 所以我不知道发生了什么......
答案 0 :(得分:4)
var_dump($vbulletin->userinfo['userid']);
输出:
string(1)
你的字符串长度是1,它似乎是空的(空格?)。
答案 1 :(得分:2)
$vbulletin = new stdClass();
$vbulletin->userinfo = array('userid' => 1);
if(1 == $vbulletin->userinfo['userid'])
define('DEBUG', true);
else
define('DEBUG', false);
var_dump(DEBUG);
echo "\n";
var_dump($vbulletin->userinfo['userid']);
您的代码没有任何问题。运行上面的代码给了我
bool(true) int(1)
我怀疑您的$vbulletin->userinfo['userid']
变量与您认为的变量具有不同的值
修改强>
当我将其更改为
时$vbulletin->userinfo = array('userid' => '1');
我得到string(1) "1"
。你的字符串似乎是空的,这就是它失败的原因。