【发布时间】:2011-08-09 16:40:32
【问题描述】:
我有一个带有多个条件的 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]
以下是它试图比较(直接从源代码复制)与它们下面的十六进制代码的变量:
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
【问题讨论】:
-
fncIsSet() 是做什么的?
标签: php string comparison operators