无法弄清楚如何循环直到一个值

时间:2014-03-12 20:42:55

标签: php

我想做一个分区,基本上我希望它能做到这一点

当你有0个联赛积分=铜牌V
当你有10个联赛积分=铜牌IV 当你有20个联赛积分=青铜III
所以基本上,你仍然会是铜牌IV​​,直到你得到20分,所以我的观点是,当你有10-20分时,你是青铜IV,有人帮助吗?

                    <?php
                    $league = $points;
                    if ($league <= 0) {
                        $league = "Bronze V";
                    } else if ($league == 10) {
                        $league = "Bronze IV";
                    } else if ($league == 20) {
                        $league = "Bronze III";
                    }
                    ?>

现在,我无法让它发挥作用,因为当某人有24点时,它会显示为24点而不是铜牌IV​​

2 个答案:

答案 0 :(得分:0)

我想你想要>=

<?php
if ($points >= 0) {
    $league = "Bronze V";
} elseif ($points >= 10 && $points < 20) {
    $league = "Bronze IV";
} else {
    $league = "Bronze III";
}
?>

为了确保一切都很完美,这是一个更好的布局

<?php
if ($points >= 20) {
    $league = 'Bronze III';
} elseif ($points >= 10) {
    $league = 'Bronze IV';
} else {
    $league = 'Bronze V';
}
?>

答案 1 :(得分:-1)

当您想要使用大于或等于==时,您正在使用等于比较运算符>=

Ascherer指出,拥有$league = $points;似乎不是一个好主意。此外,您应该养成使用单引号而不是双引号的习惯,因为PHP必须在双引号字符串内部进行解析以检查内部是否存在变量,这会略微降低性能。

以下是我的写作方式:

if($points >= 0) 
{
    $league = 'Bronze V';
} 
else if($points >= 10) 
{
    $league = 'Bronze IV';
} 
else if($points >= 20) 
{
    $league = 'Bronze III';
}
else
{
    $league = 'Undefined';
}