2011-05-04 84 views
0

我寫了一個程序,它從csv中讀取數據(在SQL Studio中保存爲Unicode格式),然後做一些比較並打印出結果。if statement not reading variables

出於某種原因,這個簡單的if語句返回數據時打印它顯示正確的結果假eventhough:

foreach ($complete as $key => $val){  
    $INVOICE = 'INVOICE'; 
    $InvoiceType = $complete[$key][9]; 
    echo 'comparing' . $InvoiceType.'to'. $INVOICE; 
     if ($InvoiceType == $INVOICE){ 
    echo 'I am inside a invoice'; 
    } 
    else if ($InvoiceType == 'CREDIT'){ 
    $PayeeDocumentType = 'CM';echo 'I am inside a credit'; 
    } 
    } 

--------- Results --------- 
comparingINVOICEtoINVOICEcomparingINVOICEtoINVOICE 
+4

結果看起來不正確。它如何回聲「比較INVOICEtoINVOICE」兩次? – 2011-05-04 19:02:24

+2

請粘貼var_dump($ InvoiceType)的輸出;' – Dogbert 2011-05-04 19:02:25

+0

你可以'var_dump'' $ complete'? – Neal 2011-05-04 19:04:46

回答

0

猜先嚐試

$InvoiceType = trim($complete[$key][9]); 

另外還要注意的var_dump輸出中的「查看源文件」這一頁。基本上看到原始輸出帶給瀏覽器,也許有一些隱形角色在那裏。

+0

哇!謝謝!你救了我! – MG1 2011-05-04 21:41:44

1

我唯一的猜測是,$complete[$key][9]是一個對象,而不是一個字符串。

如果添加print_r($complete[$key][9])某處或修改代碼以2號線會發生什麼:

$InvoiceType = (string) $complete[$key][9]; 
+0

print_r($ complete [$ key] [9])打印「INVOICE」。我也做了gettype,它返回「string」 – MG1 2011-05-04 19:21:06