我正在使用多个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";
}
?>
但为了简单起见,我决定了我的路线。
可悲的是,我没有尝试过这项工作,因为我不知道它是否可能。
答案 0 :(得分:2)
是的,当然。
您将您的关卡数据放入数组
$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;
答案 1 :(得分:1)
不确定这是最好的方法,但您可以在if
循环中运行for
语句。
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
}
}