我使用的是PHP的foreach()
,有时当内部代码不能满足我的要求时,我想重新尝试相同的级别,而不是继续下一个级别。
这可能吗?
示例:
foreach($pics AS $pic){
if(!upload($pic)){
again; // something like this
}
}
没有,但您可以在循环中放入while循环,这与您上面想要的行为等效。但是,您应该将其修改为使用计数器,并在X次重试后停止,以防止无限循环。
foreach($pics AS $pic){
while(!upload($pic));
}
您需要用另一个循环包围if
,该循环循环一定次数(您的最大重试次数),或者直到您的代码成功时手动将break
从中循环出来。
我想您可以使用goto
,但这通常是不受欢迎的,而且无论如何都会做与内部循环相同的事情。
function dosomething() {
foreach($pics AS $pic){
if(!upload($pic)){
break;
}
}
$success = true;
}
$success=false;
while( !$success ) dosomething();
虽然这在理论上应该有效
我想说的是绝对糟糕的编程实践,因为你很有可能会出现一个永无止境的循环。