我有一个像这样的“if”语句:
if( (first condition) || (second condition) || (third condition) ){
//line of code
}
如果满足所有3个条件,我希望代码行运行3次。如果只满足2个条件,它必须运行2次,依此类推。
这种语法也很好:
if(){}elseif(){}elseif(){}
答案 0 :(得分:7)
true将被评估为1,false为0:
$qty = (first condition) + (second condition) + (third condition);
含义$qty
将包含所需的迭代次数。
所以,你执行你的命令,如下:
for ($i=0; $i<$qty; $i++) {
//Your line of code you want to execute, for example:
echo $i, "\n";
}
不需要明确的 if-else
表达式。
答案 1 :(得分:2)
您可以先计算执行次数,然后使用循环:
$times = 0;
if (first condition) ++$times;
if (second condition) ++$times;
if (third condition) ++$times;
for (... 1 .. $times ...) do_your_thing();
答案 2 :(得分:2)
通常情况下,如果条件是短路的,那就意味着如果满足其他条件之前的条件,那么后者将永远不会执行。
参考:http://php.net/manual/en/language.operators.logical.php
所以在你的情况下,我认为你应该用其他方法重构代码,Jeremy Miller的答案似乎适用于你的情况。
答案 3 :(得分:2)
这里count变量抓住了多少条件为真。 而for循环将执行代码等于该计数($ count)。
$count = 0 ;
if( first condition ){
$count++;
}
if( second condition ){
$count++;
}
if( third condition ){
$count++;
}
for($i=0;$i<$count;$i++) {
//line of code
}
答案 4 :(得分:1)
你可以将一个变量带到一个变量所有条件值。然后用loop
运行。我认为这是最短的方法。