0

需要一点帮助,总是得到最后一个值 188490?

if(isset($_POST['zapremina']) and is_numeric($_POST['zapremina']))
        {   
if ($_POST['zapremina']<=1050)
$_POST['zapremina']=1030;
if (($_POST['zapremina']>=1151) and ($_POST['zapremina']<=1300));
$_POST['zapremina']=2010;
if (($_POST['zapremina'] >= 1301) and ($_POST['zapremina'] <= 1600));
$_POST['zapremina']=4400;
if (($_POST['zapremina'] >= 1601) and ($_POST['zapremina'] <= 2000));
$_POST['zapremina']=9110;
if (($_POST['zapremina'] >= 2001) and ($_POST['zapremina'] <= 2500));
$_POST['zapremina']=45000;
if (($_POST['zapremina'] >= 2501) and ($_POST['zapremina'] <= 3000));
$_POST['zapremina']=91200;
if ($_POST['zapremina'] > 3001);
$_POST['zapremina']=188490;
        }
else
$_POST['zapremina']=0;

我认为是一个小错误,有人知道吗,txanks a log

4

4 回答 4

2

是的,你需要这样做else if

if ($_POST['zapremina']<=1050)
    $_POST['zapremina']=1030;
else if (($_POST['zapremina']>=1151) and ($_POST['zapremina']<=1300))
    $_POST['zapremina']=2010;
else if (($_POST['zapremina'] >= 1301) and ($_POST['zapremina'] <= 1600))
    $_POST['zapremina']=4400;

等等

至于为什么:您正在检查您的变量,然后将其设置为另一个值,该值往往高于您在分配它之后检查的任何值。

所以任何高于最终会产生 188490 的东西。

else 表示:在第一次匹配时停止比较。

此外,您需要删除;if 语句之后的,因为这;意味着:End of operation. 在这种情况下,这意味着End of If......这反过来意味着,以下行将始终被执行,此时变量的值甚至不再重要。

于 2013-03-30T20:48:41.240 回答
0

消除 ; [分号] 在每个 if 语句的末尾,并在当前场景中使用 else if 阶梯

于 2013-03-30T20:52:30.077 回答
0
if(isset($_POST['zapremina']) and is_numeric($_POST['zapremina']))
        {   
if ($_POST['zapremina']<=1050)
$zapremina=1030;
if (($_POST['zapremina']>=1151) and ($_POST['zapremina']<=1300))
$zapremina=2010;
if (($_POST['zapremina'] >= 1301) and ($_POST['zapremina'] <= 1600))
$zapremina=4400;
if (($_POST['zapremina'] >= 1601) and ($_POST['zapremina'] <= 2000))
$zapremina=9110;
if (($_POST['zapremina'] >= 2001) and ($_POST['zapremina'] <= 2500))
$zapremina=45000;
if (($_POST['zapremina'] >= 2501) and ($_POST['zapremina'] <= 3000))
$zapremina=91200;
if ($_POST['zapremina'] > 3001)
$zapremina=188490;
        }
else
$zapremina=0;
于 2013-03-30T20:55:27.263 回答
0

我至少看到两个错误:
1)几乎每个 if 语句代码行后面都有分号 (;)。这样,这些语句甚至不会影响任何内容,并且您的 POST 变量设置了六次。
2)你将你的 POST 变量设置为新的(更高的)值,然后用这个新的和更高的值进行检查,我猜这不是你试图完成的。

另外 - 正如 datasage 已经说过的 - 避免写入 POST 变量。

于 2013-03-30T20:58:19.320 回答