2011-04-20 62 views
0

我有一个if语句与几个条件:为什么这些字符串不匹配!?! - PHP

if (
    (fncIsSet($row[0]['incident']) == $line[4] 
    && fncIsSet($row[0]['id']) == $line[0] 
    && fncIsSet($row[0]["code"]) == $line[2] 
    ) 
    && (
     ($GLOBALS['postCheckList'] == 2 
     && $row[0]['QAResult']=='Fail' 
     ) 
     || ($GLOBALS['postCheckList'] != 2) 
    ) 
){ 

我有一个项目要通过这片逻辑(5000+值)以及约99.9%的通过预期的大名单。

我已经通过调试成阶梯状了十几次我可以证实,前2个条件是路过,但第三个是失败的:

fncIsSet($row[0]["code"]) == $line[2] 

下面是它试图比较瓦尔(直抄来源),其下方有十六进制代码:

Ambulance-2 
Ambulance-2 
41 6D 62 75 6C 61 6E 63 65 2D 32 
41 6D 62 75 6C 61 6E 63 65 2D 32 

WTF,对不对?我看不出有什么理由为什么这些不起作用,特别是当其他非常相似的变量通过罚款(即救护车-1和救护车-3)时。

下面是另一个例子:

Anzemet 
Anzemet 
41 6E 7A 65 6D 65 74 
41 6E 7A 65 6D 65 74 
+0

fncIsSet()是做什么的? – 2011-04-20 17:18:11

回答

3

我敢打赌美元,你有尾随空白问题的甜甜圈。尝试在任一端用分隔符打印变量(管道总是很好),或使用var_dump()深入检查变量。

+1

性感性感修剪 - http://php.net/manual/en/function.trim.php – afuzzyllama 2011-04-20 17:33:02

+0

修复了第一个 - 我发誓我检查,因为这是其他人的问题。但是,我仍然遇到第二个例子“Anzemet' – jreed121 2011-04-20 17:52:38

+0

的问题。我知道了,我只是在所有可能的地方修改了变量,并且做到了这一点。谢谢。 – jreed121 2011-04-20 18:04:26

2

使用var_dump()查看变量的确切内容(+类型),以及字符串的情况下也是长度。

相关问题