我正在使用多个IF语句,想知道如何将这些语句放入数组中。
IF语句
if ($totalEXP < $l1) echo "1";
if ($totalEXP < $l2) echo "2";
正如你所看到的,除了$l1和最后的回声之外,其他都是一样的我会使用大约100个IF语句,有没有办法把它放在一个数组中以节省大量的代码?
我知道我应该使用ELSEIF语句
<?php
if ($totalEXP < $l1) {
echo "1";
} elseif ($totalEXP < $l2) {
echo "2";
} else {
echo "MAX";
}
?>
但出于简单的原因,我决定了我所走的路线。
遗憾的是,我并没有尝试太多,因为我不知道这是否可能。
当然可以。
您将您的等级数据放入阵列中
$levels = array(
1 => $l1,
2 => $l2,
...
);
然后循环
$pleyer_level = 1;
foreach($levels as $level => $xp)
if($totalEXP > $xp)
$player_level = $level;
当你知道循环的工作已经完成时,在循环中插入一个中断也是明智的,这样你就不会无意义地迭代
$pleyer_level = 1;
foreach($levels as $level => $xp)
if($totalEXP > $xp)
$player_level = $level;
else
break;
不确定这是最好的方法,但您可以在for
循环中运行if
语句。
for ($i = 1; $i <= 100; $i++) // i increases every new loop
{
if ($totalEXP < ${l$i}) // ${l$i} corresponds to $l1, $l2, $l3 and so on
{
// do stuff
}
}