2011-04-20 96 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()查看變量的確切內容(+類型),以及字符串的情況下也是長度。

相關問題