[英]php logical 'and' not logical. (what am I missing here)
鑒於以下
expire date-> 2014-10-14 notify date-> 2014-10-06 current date-> 2014-10-08 Fine
expire date-> 2014-10-07 notify date-> 2014-10-06 current date-> 2014-10-08 Expired
expire date-> 2014-10-11 notify date-> 2014-10-06 current date-> 2014-10-08 Fine
expire date-> 2014-10-05 notify date-> 2014-10-06 current date-> 2014-10-08 Expired
和代碼
FOR loop (each row)
if ($expire date < $current_date) {
echo "Expired <BR/>";
} elseif (($expire date >= $notify_date) && ($expire date <= $current_date)) {
echo "Warning <BR/>";
} elseif ($expire date > $notify_date) {
echo "Fine <BR/>";
}
END FOR
為什么會這樣
精細
已過期
精細
已過期
為什么expire date -> 2014-10-07
不打印Warning
?
這是因為$vid_date
$current_date
。 它滿足您的第一個條件,而從未達到第二個條件。 通常,您需要從最具體到最一般地安排這樣的鏈接條件。
我認為問題在於您的第一個邏輯
if (vid date < $current_date) {
echo "Expired <BR/>";
嘗試將其移至最后
嘗試將支票從最具體的順序重新排列到最小順序:
FOR loop (each row)
if ((expire date >= $notify_date) && (expire date <= $current_date)) {
echo "Warning <BR/>";
} elseif (expire date < $current_date) {
echo "Expired <BR/>";
} elseif (expire date > $notify_date) {
echo "Fine <BR/>";
}
END FOR
您需要安排條件。 將您的第一個條件放在最后可以解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.