我一直在撓我的頭,試圖弄清楚這一點。如果設置了一個值,則進行檢查,否則忽略
我有一個數組,看起來像...
$param = array(
"conditionType" => $_GET['conditionType'] ? strtolower($_GET['conditionType']) : "all",
"minPrice" => $_GET['minPrice'] ? $_GET['minPrice'] : false,
"maxPrice" => $_GET['maxPrice'] ? $_GET['maxPrice'] : false,
);
我需要檢查,以確保返回的所有書都> =最小价格和< =最高價,但如果這些用戶選擇不指定最小或最大價格比if語句需要忽略此檢查。
if(($param['conditionType'] == "all"
|| ($param['conditionType'] == "new" && strtolower($book['sub_condition']) == "new")
|| ($param['conditionType'] == "used" && strtolower($book['sub_condition']) != "new"))
&& ($param['minPrice'] && $book['price'] >= $param['minPrice'])
&& ($param['maxPrice'] && $book['price'] <= $param['maxPrice'])
&& $book['price'] != "null"
){
$books[] = array(
"link" => $book['link'],
"listing_condition" => $book['sub_condition'],
"listing_price" => $book['price']
);
}
我可以在if語句中更改哪些內容以確保發生這種情況?
條件的相關部分看起來OK。如果這種行爲不正確,請將其分解並進行調試。 – Jon
@Jon我可能不夠清楚,我寫'$ param ['minPrice'] && $ book ['price']> = $ param ['minPrice'])''的部分不會總是通過,因爲'$ param ['minPrice']'可以設置爲false,如果設置爲false,則表示用戶不希望按價格限制搜索,如果情況比它需要能夠通過if聲明 –
對不起,我的錯誤。再看一遍。 – Jon