我需要一個簡單的腳本,從POST讀取一個數字(我們將調用值'數字')。這將是必須的範圍從以下三個數字:需要幫助來創建一個範圍的數字的PHP回聲腳本
301-340
401-440
501-540
601-640
701-740
801-840
如果它不落在這些ra年齡,我需要回應一條消息。如何做到這一點?
我需要一個簡單的腳本,從POST讀取一個數字(我們將調用值'數字')。這將是必須的範圍從以下三個數字:需要幫助來創建一個範圍的數字的PHP回聲腳本
301-340
401-440
501-540
601-640
701-740
801-840
如果它不落在這些ra年齡,我需要回應一條消息。如何做到這一點?
$n = (int)$_POST['number']; switch(true) { case $n >= 301 && $n <= 340: case $n >= 401 && $n <= 440: case $n >= 501 && $n <= 540: // ETC // number is OK, break out of switch break; default: echo "Number '$n' is invalid!<br />"; exit; }
if($number <= 300 || $number > 840 || (($number-1) % 100) >= 40) {
echo "Number was not in ranges!";
}
這需要的%
(模)運算符由數除以時返回餘數的優勢 - 這樣,因爲你想要的數字,其中剩餘模100爲1-40,它可以只減1,取模100,然後看看是否是40+(因爲1-40現在是0-39)。
只要你的範圍遵循設定的模式,這種方法很好,簡潔。如果您需要更多定製各個範圍,請使用switch
語句(有關此示例,請參閱answer from "too much php")。
這一個是有點不同。希望陣列建設不會增加太多太多開銷。
// Possible answers
$validInputs = array_merge(range(301, 340), range(401, 440), range(501, 540)); // and so forth...
$input = (int) $_POST['input'];
if (! in_array($input, $validInputs)) {
echo 'Got an error!';
}
相關的文檔:range(),array_merge()和in_array()。