问题描述
继续
continue用于循环结构中,以跳过当前循环的其余部分,并在条件评估和下一次迭代(from: php.net)的开始处继续执行。
我最近了解了PHP的continue
结构。简而言之,对于那些还不了解的人:要中断(foreach / while / for)循环迭代,可以编写以下代码:
if($foo == 0){
continue;
}
(如果$ foo为0,则循环将跳过当前迭代并继续下一个迭代。)
回答问题
对于那些像我一样拥有尤里卡经历的人,对您有好处!但是,看到代码使我想到了这样的代码格式。您可能已经注意到,上面的语句占用了脚本的3行。当然,您可以将整个语句写在1行上,但这不会增加可读性。
现在,我将按照以下方式编写自己的“本机”函数:
skip_if_null( (int) $foo = null);
skip_if_more( (int) $foo,(int) $bar = 0);
skip_if_less( (int) $foo,(int) $bar = 0);
但是我宁愿在一个语句中使用本机PHP方法来达到相同的结果。
那么PHP中是否包含这样的本机功能?如果没有,怎么会没有呢?
解决方法
正如您所说,该语句已经可以放在一行上;您也可以不用大括号,使其看起来更像是一条语句:
if ( $foo == 0 ) continue;
那么PHP中是否包含这样的本机函数?如果没有,怎么会没有呢?
“为什么”始终是一个棘手的问题,但是总的来说,我们可以问为什么编程语言包含诸如continue
之类的语句而不是诸如skip_if_more($foo,$bar)
之类的函数。我想到了一些想法:
- 灵活性:
continue
语句可以在您可以想象的任何条件下使用;您需要一长串skip_if...
函数以覆盖常见情况,并且如果没有一个匹配的条件,则仍然需要某种方式来给出自定义条件。 - 更容易定义:
continue
必须在运行时引擎中执行常规函数调用无法完成的特殊操作;任何skip_if...
函数都必须作为特殊情况包括在内。 - 更容易理解:浏览代码并看到
continue
一词,您可以立即看到它将控制循环;瞥一眼对skip_if_array_is_empty
的调用,您将不得不猜测这是内置函数还是无关的自定义函数。 - 更容易学习:您刚刚发现
continue
;想象一下,如果您必须学习十二个特定的skip_if...
函数和十多个return_if...
,依此类推...