【发布时间】:2012-01-26 19:47:06
【问题描述】:
我只是假设以下几点:
foreach ($arr as $key => $value) {
switch($key) {
// ... some other cases
default:
continue;
// ^== assumption: move on to the next iteration of the foreach
// actual PHP: treat this continue just like a break
}
// ...
}
但其实根据documentation for continue:
出于继续的目的,switch语句被认为是一个循环结构。
PHP 语言设计者有这样的选择吗?据我所知,switch 不是循环控制结构,那么为什么在这种情况下将其视为一个呢?
【问题讨论】:
-
在谈论
php时,应避免使用“原因”和“设计”这两个词;) -
你可以使用
continue 2=) -
@drrcknlsn,
switch需要保持一致,因为它使用了跳出活动块的break。顺便说一句,这都是我的猜测。 -
@zzzzBov 我们谈论的是
continue,它用于循环结构以跳到下一个迭代。它应该忽略switch。break两者都可以,应该跳出块或循环。在此用例中,将switch视为循环结构实质上使continue与break同义。 -
@chesles,如果你在一个块上使用
continue,它会跳出活动块并继续到该块的下一次迭代。我可以将switch想象成一个循环结构,只有一次迭代,这将使continue的行为与break相同,完成循环并移出块。我不是在为语言的设计辩护,我只是在推测我看到的模式。
标签: php loops switch-statement