本机skip_if_condition

问题描述

继续

continue用于循环结构中,以跳过当前循环的其余部分,并在条件评估和下一次迭代(from: php.net)的开始处继续执行。

我最近了解了PHPcontinue结构。简而言之,对于那些还不了解的人:要中断(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...,依此类推...