我有一个if语句,条件似乎没有评估我期待的。我正在比较两个变量,一个是SQL查询到MS SQL Server的结果,另一个是常规PHP变量,即:$row[1]=="$searchString"
。
当$row
来自SQL查询时,条件总是计算为false
,但是当它来自数组时,它会正确地计算为true
(请参阅示例输出)。以下代码说明了这一点。
注意:SQLgetDayTypesTable
是一个使用sqlsrv_fetch_array
的函数,我知道这样可以正常工作。
$dayTypesTable = SQLgetDayTypesTable($getDayTypesInfo);
echo "From SQL Server: <br>";
print_r($dayTypesTable); // Array from SQL Query
echo "<br>**$searchString**<br>";
foreach($dayTypesTable as $row) {
if($row[1]==$searchString){echo "match<br>";}
else {echo "nomatch<br>$row[1]<br>$searchString<br>";}
}
$dayTypesTable = array(array(1,'Weekday'),array(2,'Weekend'),array(3,'Special'));
echo "Internal Array: <br>";
print_r($dayTypesTable); // This looks just like the array from SQL query
echo "<br>**$searchString**<br>";
foreach($dayTypesTable as $row) {
if($row[1]==$searchString){echo "match<br>";}
else {echo "nomatch<br>$row[1]<br>$searchString<br>";}
}
输出:
From SQL Server:
Array ( [0] => Array ( [0] => 1 [1] => Weekday ) [1] => Array ( [0] => 2 [1] => Weekend ) [2] => Array ( [0] => 3 [1] => Special ) )
**Weekend**
nomatch
Weekday
Weekend
nomatch
Weekend
Weekend
nomatch
Special
Weekend
Internal Array:
Array ( [0] => Array ( [0] => 1 [1] => Weekday ) [1] => Array ( [0] => 2 [1] => Weekend ) [2] => Array ( [0] => 3 [1] => Special ) )
**Weekend**
nomatch
Weekday
Weekend
match
nomatch
Special
Weekend