我有一个if语句,有几个条件:
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%按预期通过。
我已经通过调试器十几次,所以我可以确认前两个条件正在通过,但第三个条件失败了:
fncIsSet($row[0]["code"]) == $line[2]
以下是它试图比较的变量(直接从源复制)和它们下面的Hex代码:
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,对吗?我看不出为什么这些不起作用的原因,特别是当其他非常相似的变量通过罚款时(即Ambulance-1和Ambulance-3)。
这是另一个例子:
Anzemet
Anzemet
41 6E 7A 65 6D 65 74
41 6E 7A 65 6D 65 74
答案 0 :(得分:3)
我会向甜甜圈打赌,你有空白问题。尝试使用两端的分隔符打印变量(管道总是好的),或使用var_dump()
深入检查变量。
答案 1 :(得分:2)
使用var_dump()
查看变量的确切内容(+类型),如果是字符串也是长度。