2015-11-08 85 views
-1

我有這個代碼,我確定我寫了它正確。但它沒有運行echo函數動作。它只是返回錯誤。PHP的邏輯 - 如果不等於

if(($amount != "250") || ($amount != "500") || ($amount != "750") || ($amount != "1000")){ 
    $error = "You must enter a amount in a multiple of 250."; 
    error($error); 
}elseif(($amount == "250") || ($amount == "500") || ($amount == "750") || ($amount == "1000")){ 
    echo "The logic should display this if i type in 250, 500, 750 or 1000"; 
    } 
+0

'如果(($量250%)!= 0)' –

+0

的$金額只能是250,500,750或1000的所有其他款額不得 –

+0

您的代碼沒有任何意義。你應該從邏輯開始。首先,不是(不是||不是b)= a && b'。檢查此:https://en.wikipedia.org/wiki/De_Morgan's_laws – Axalix

回答

2

您可以使用以下方法達到相同效果。點擊此處瞭解更多關於in_array的信息。

if (!in_array($amount, array(250, 500, 750, 1000))) { 
    $error = "You must enter a amount in a multiple of 250."; 
    echo $error; 
} else { 
    echo 'Nice!'; 
} 
+1

這並不解釋錯誤是什麼或如何解決它 –

+1

輝煌的工作魅力,謝謝 –

+1

@李安甲 - 請確保選擇這是正確的答案,如果這是你需要的,約翰已經採取了自己告訴我們,這不是你要找的。 – MiDri

0

僅供參考一個更好的方式來做到這一點是:

if($amount % 250 == 0) { 
    echo $amount; 
} else { 
    echo "You must enter a amount in a multiple of 250."; 
} 
+0

這並不能解釋錯誤是什麼或者如何解決它。另外他們說它只能是那四個值。這並沒有解釋這一點。 –

1

它可能更好地做到這一點:

if($amount >= 250 && $amount <= 1000 && ($amount % 250) == 0) { 
    echo "yes"; 
} else { 
    echo "no"; 
} 

你的錯誤是在第一個if語句:

if(($amount != "250") || ($amount != "500") || ($amount != "750") || ($amount != "1000")){ 

它應該是

if(($amount != "250") && ($amount != "500") && ($amount != "750") && ($amount != "1000")){ 
    $error = "You must enter a amount in a multiple of 250."; 
    echo "error"; 
}else { 
    echo "The logic should display this if i type in 250, 500, 750 or 1000"; 
}