goto语法在PHP中的使用教程
前言
在C++、Java及很多语言中,都存在着一个神奇的语法,就是goto。顾名思义,它的使用是直接去到某个地方。从代码的角度来说,也就是直接跳转到指定的地方。PHP中也有这个功能,我们先来看看它是如何使用的:
代码运行到goto位置时,就跳转到了a:所在的代码行并继续执行下去。这个功能对于复杂的嵌套if或者在一些循环中进行跳出很有用,特别是针对某些异常或者错误情况的处理,比如:
for($i=0,$j=50;$i<100;$i++){ while($j--){ if($j==17){//假设$j==17是一种异常情况 gotoend;//直接跳走了,循环结束的结果也不输出了 } } } echo"i=$i"; end: echo'jhit17';//直接到这里输出或者处理异常情况了
不过goto语法也有一些限制情况:
- 目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数
- 无法跳入到任何循环或者switch结构中
- 跳出循环或者switch,通常的用法是用goto代替多层的break
比如以下的代码都是无效的:
$a=1; gotoswitchgo; switch($a){ case1: echo'bb'; break; case2: echo'cc'; switchgo: echo"bb"; break; } gotowhilego; while($a<10){ $a++; whilego: echo$a; }
它们都会报同样的错误,因为作用域的关系无法找到定义的goto标签。另外还需要注意的,使用goto可能什么引起死循环,如下所示:
b: echo'b'; gotob;
代码执行到goto时,跳回了之前的b标签行,然后继续向下执行,又到goto了,成为了一个死循环。有点像while(true)的感觉了。但是,在这个goto循环里是没有break的,只能在goto出去到别的地方。
注意:goto操作符仅在PHP5.3及以上版本有效。
参考:https://www.php.net/manual/zh/control-structures.goto.php
总结
到此这篇关于goto语法在PHP中使用教程的文章就介绍到这了,更多相关goto语法在PHP的使用内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。