资讯专栏INFORMATION COLUMN

php continue break 用例

刘厚水 / 1880人阅读

摘要:导读的一般在循环中直接跳过后续的代码,直接进入下一次循环,用来跳出循环,或者在的时候在某个执行完后跳出,防止执行后续其他的在和后面还可以带数字,实际上没带数字的时候有一个默认值,,如果带了数字,那么的话就表示跳过层循环注意,是层,如果是的话

导读

PHP的continue一般在循环中直接跳过后续的代码,直接进入下一次循环,break用来跳出循环,或者在switch的时候在某个case执行完后跳出,防止执行后续其他的case.

在continue和break后面还可以带数字,实际上没带数字的时候有一个默认值,1,如果带了数字n,那么continue的话就表示跳过n层循环(注意,是),如果是break的话,就表示终止n层循环.

验证

在php的官网上,有这么一段验证代码:
 

 ";
    }

在xxxx的地方依次填入break,break 2, continue 和continue2,看看是什么结果

结果

结果依次是:

break 1 [0] zero <0>  [1] one <1>  [2] two <2>
break 2 [0] zero <0>  [1] one
continue 1 [0] zero <0>  [1] one <1>  [2] two <2>
continue 2 [0] zero <0>  [1] one [2] two <2>
解析

当 XXXX 为 break 1
break的时候,很容易看出结果,依次循环,在对应的case执行完毕后跳出switch.

当 XXXX 为 break 2
第一次循环正常进行,当进入循环的第二次时,进入case 1,在执行break 2后, 终止两层循环,第一层的switch虽然不是循环,但被break直接终止,第二次的break就作用于上一层的for循环了,在for循环中break,就终止循环了,所以最终的结果只循环了两次,而且第二次最后面的$i(值为1)也没能输出

当 XXXX 为 continue 1
continue时,让我们疑惑的是在switch中的continue表示什么,结果表明,switch中的continue 1break 1 一个效果,执行了continue 1就直接终止后续的case判断执行了. 

当 XXXX 为 continue 2
第二次循环执行了case 1, 在echo "one"后,continue 2首先是终止后续的case,然后对外层for作用了continue, 所以就直接进入了下一次循环,完成了case2的输出.

注意

那么假如在n层循环中执行了break m(m>n)或者continue m(m>n)时,会是怎么样的呢,比如单层循环体中执行了break 2或者continue 2

在这里还是要强调,breakcontinue作用的是循环体的层数(switch算一层),如果这样执行的话,会直接抛出一个fatal error, 提示break或者continue超出层数了.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20923.html

相关文章

  • phpcontinue break exit return 的区别

    摘要:中的循环有这几种是用来在循环结构中,控制程序放弃本次循环之后的语句,并转而进入下一次循环。本身并不跳出循环结构只是放弃本次循环注意如果用在非循环结构中会导致程序出错的作用是跳出当前的语法结构,语句可以带一个参数表示跳出的层数。 php 中的循环有 for foreache while do{} whlie这几种 1 continue continue是用来在循环结构中,控制程序放弃本次...

    AZmake 评论0 收藏0
  • 求非负元素数组所有元素能组合的最大字符串

    摘要:寻找非零元素数组中所有元素排列组合后的最大值待排序数组排序方法参数校验排序算法快速排序冒泡排序拼接用例测试这里只对快速排序方法使用组测试用例并列举如下。 首发于 樊浩柏科学院 问题叙述:将一个非负元素数组中的所有元素排列组合在一起,找出值最大的那个排列情况。例如 [0, 9, 523, 94, 10, 4],排列组合后值最大数为:9945234100。 showImg(https:/...

    xiongzenghui 评论0 收藏0
  • PHP 手册阅读笔记 - 语言参考篇

    摘要:最近计划把手册,认真的先过一遍。语言参考类型新认知强制转换类型用。后期静态绑定从这里开始语言参考生成器新认知生成器汗水的核心是关键字。语言参考预定义变量超全局变量前一个错误信息原始数据以上 showImg(https://segmentfault.com/img/remote/1460000010147451); 最近计划把 PHP手册,认真的先过一遍。记录一些以前不知道,不明确的知识...

    Developer 评论0 收藏0
  • PHP 源码探秘 - 为什么 trim 会导致乱码

    摘要:我的博客运行以下代码互联网产品我们可能以为会得到的结果是互联网产品,实际结果是互联网产。所以在执行的时候,通过字节比对,会将去掉,导致了最后出现了乱码。 我的博客 https://mengkang.net/1039.html 运行以下代码: $tag = 互联网产品、; $text = rtrim($tag, 、); print_r($text); 我们可能以为会得到的结果是互联网产品...

    xbynet 评论0 收藏0
  • Laravel Blade 模板用法

    摘要:你可以传递额外的数据到子视图定义父视图,并包含子视图,且传入额外数据父视图父视图拥有变量包含子视图额外数据子视图 1. 继承、片段、占位、组件、插槽 1.1 继承 1.1.1 定义父模板 Laravel/resources/views/base.blade.php 1.1.2 子模板继承 路径:Laravel/resources/views/child.blade.php @exten...

    MangoGoing 评论0 收藏0

发表评论

0条评论

刘厚水

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<