(php)如果条件不起作用

时间:2011-04-21 15:53:55

标签: php if-statement

我在这里疯了。以下简单的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: 我将上面的确切代码复制到一个新文件中,然后生成预期的输出。 所以我不知道发生了什么......

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"。你的字符串似乎是空的,这就是它失败的原因。