首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >本机skip_if_condition()

本机skip_if_condition()
EN

Stack Overflow用户
提问于 2020-08-25 08:07:00
回答 1查看 51关注 0票数 1

继续

继续在循环结构中用于跳过当前循环迭代的其余部分,并在条件评估时继续执行,然后在下一个迭代(出发地: php.net)开始时继续执行。

我最近了解了PHP的continue结构。简而言之,对于那些尚未意识到的人:要中断(foreach/while/ for )循环迭代,可以编写以下内容:

代码语言:javascript
复制
if($foo == 0){
    continue;
}

(如果$foo为0,则循环将跳过当前迭代并继续进行下一次迭代。)

关于这个问题

对于那些(像我)刚刚有过尤里卡经历的人来说,这对你很好!然而,看到这些代码让我想到了这样的代码格式。正如您可能已经注意到的,上面的语句占用了脚本的3行。当然,您可以将整个语句写在一行上,但这不会增加太多的可读性。

现在,我将编写我自己的“本地”函数,大致如下:

代码语言:javascript
复制
skip_if_null( (int) $foo = null);
skip_if_more( (int) $foo, (int) $bar = 0);
skip_if_less( (int) $foo, (int) $bar = 0);

但我宁愿使用本地PHP方法在一条语句中实现相同的结果。

中是否包含了这样一个本机函数?如果没有,为什么没有呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-25 08:24:32

正如您所说,语句可以放在一行上;您还可以关闭大括号,使其感觉更像是一条语句:

代码语言:javascript
复制
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...,等等……
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63574563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档