有关此问题的上下文,请参阅我的recent post。在下面的函数中,break continue
将允许我省略最后的if
条件。 (见在内部for循环的注释)PHP中存在“break continue”吗?
function strposHypothetical($haystack, $needle) {
$haystackLength = strlen($haystack);
$needleLength = strlen($needle);//for this question let's assume > 0
$pos = false;
for($i = 0; $i < $haystackLength; $i++) {
for($j = 0; $j < $needleLength; $j++) {
$thisSum = $i + $j;
if (($thisSum > $haystackLength) ||
($needle[$j] !== $haystack[$thisSum]))
break;
// if I could "break continue" I could omit the
// if ($j === $needleLength)
// below and just write $pos = $i; break;
}
if ($j === $needleLength) {
$pos = $i;
break;
}
}
return $pos;
}
我见过有些类似的帖子,如this一个不太回答我的问题。我不想重构上面的函数。我不需要break 2
也不需要continue 2
。注意break 2
在内循环中不起作用,因为外循环中的必要迭代将被忽略。 continue 2
也失败,因为内循环需要迭代到针的末端。在PHP中可以使用break continue
吗?
注我已经试过这一点,得到了一个致命错误,所以我认为无论答案是“没有”,我实现它不正确。
注2通过 “中断继续” 我的意思打破则内循环继续外
你期望'break continue'实际上能做什么?它有点矛盾 –
打破内在和外面的下一个迭代,继续跳过$ POS并在它下面突破,这是我想要做的 –
@self你可以展示更多这个,它不是在PHP手册 – Martin