是否可以做这样的事情:
if ($boolean == true) {
foreach ($variables as $variable) {
}
// some code that can be run either with a loop or without
if ($boolean == true) {
} // end the foreach loop
}
还是有另一种方法可以做到这一点,而不是为了满足所有可能性而重写相同的代码两次吗?
答案 0 :(得分:4)
传统的方法是始终使用循环。如果只有一个项目,那么您仍然只能一次。
已提交的示例
$values = …;
if (!is_array($values)) {
$values = array($values);
}
foreach ($values as $value) {
// Do your work
}
答案 1 :(得分:1)
我不确定我是否完全理解你的要求,但如果你想至少运行一次循环,并继续循环一个条件,那么“Do While”就是你的答案。一段时间工作就像一段时间,但在第一个循环运行后检查 - 这意味着它总是至少运行一次。
do-while循环与while循环非常相似,除了在每次迭代结束时而不是在开始时检查真值表达式。
示例:
$arrayofstuff = array('one ','two ','three '); // Optional array of stuff
$i=0; // Counts the loops
echo 'starting...';
do {
// Do stuff at least once here
// Array stuff if needed
if(isset($arrayofstuff[$i])) {
echo $arrayofstuff[$i]; // Uses loop # to get from array
} else {
break; // ends loop because array is empty
}
$i++;
} while (true);
对于它的价值,将变量强制转换为单个值数组可能更容易阅读。正如你所看到的,这里有一个很简单的任务。
答案 2 :(得分:0)
为什么不简单:
if($boolean){
foreach($a as $b){
// do stuff
}
}else{
// do other stuff
}
答案 3 :(得分:0)
(Dionne Warwick的声音)这是什么功能:
function doSomething() {
//whatever
};
if ($boolean)
for($variables as $variable) doSomething();
else
doSomething();
你想到的那种语法在PHP中并不有效。不过,这是一个非常聪明的主意。但其中一个的代码维护会带来地狱般的地狱。最好忘记它。
答案 4 :(得分:0)
你想要的就是这样......
foreach ($variables as $variable) {
// some code that can be run either with a loop or without
if ($boolean !== true) {
break;
}
}
但这不像使用if / else语句那样可读