我编写了一个程序,从csv(在SQL Studio中保存为Unicode格式)中读取数据,然后进行一些比较并打印出结果。
由于某些原因,这个简单的if语句返回false,即使在打印数据时它显示正确的结果:
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
我唯一的猜测是$complete[$key][9]
是一个对象而不是字符串。
如果您在某处添加print_r($complete[$key][9])
或将第二行代码修改为:
$InvoiceType = (string) $complete[$key][9];
第一次尝试
$InvoiceType = trim($complete[$key][9]);
还要注意页面"view source"中var_dump的输出。基本上看到的是发送到浏览器的原始输出,可能有一些不可见的字符。