php5.3 goto函数介绍和示例


Posted in PHP onMarch 21, 2014

goto操作符是PHP5.3+后新增功能,用来跳转到程序的另一位置;用法很简单:goto后面带上目标位置的标志,在目标位置上用目标名加冒号标记,如下:

goto a;
echo '三水点靠木';
a:
    echo 'https://3water.com';

但是goto的目标位置只能同一文件和作用域【既不能跳转到一个函数和类方法中】,当然它可以跳出循环,但是不能跳入循环:

<?php
for($i = 0; $i < 3; $i++)
{
    echo $i . '<br>';
    if($i == 1) goto end;
}
end : 
    echo '直接end结束了';

goto操作符可以用来跳转到程序中的某一指定位置。该目标位置可以用目标名称 加上冒号来标记。PHP中的goto有一定限制,只能在同一个文件和作用域中跳转, 也就是说你无法跳出一个函数或类方法,也无法跳入到另一个函数。你也无法跳入到任何循环或者switch 结构中。常见的用法是用来跳出循环或者switch,可以代替多层的break。

<?php
goto a;
echo 'Foo';a:
echo 'Bar';
?>

以上例程会输出: Bar

goto 跳出循环示例

<?php
for($i=0,$j=50; $i<100; $i++) {
  while($j--) {
    if($j==17) goto end; 
  }  
}
echo "i = $i";
end:
echo 'j hit 17';
?>

以上例程会输出: j hit 17

以下写法无效

<?php
goto loop;
for($i=0,$j=50; $i<100; $i++) {
  while($j--) {
    loop:
  }
}
echo "$i = $i";
?>

以上例程会输出:

 Fatal error: 'goto' into loop or switch statement is disallowed in
script on line 2

PHP 相关文章推荐
3
Oct 09 PHP
php auth_http类库进行身份效验
Mar 19 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
Jan 12 PHP
php中url函数介绍及使用示例
Feb 13 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
Mar 19 PHP
php断点续传之如何分割合并文件
Mar 22 PHP
Yii入门教程之目录结构、入口文件及路由设置
Nov 25 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
Apr 15 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
Feb 15 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
Jun 19 PHP
php实现支持中文的文件下载功能示例
Aug 30 PHP
php ctype函数中文翻译和示例
Mar 21 #PHP
php的declare控制符和ticks教程(附示例)
Mar 21 #PHP
php像数组一样存取和修改字符串字符
Mar 21 #PHP
easyui的tabs update正确用法分享
Mar 21 #PHP
php设置session值和cookies的学习示例
Mar 21 #PHP
一个显示效果非常不错的PHP错误、异常处理类
Mar 21 #PHP
一漂亮的PHP图片验证码实例
Mar 21 #PHP
You might like
精通php的十大要点(上)
2009/02/04 PHP
php smarty模版引擎中的缓存应用
2009/12/02 PHP
php实现通过soap调用.Net的WebService asmx文件
2017/02/27 PHP
js function使用心得
2010/05/10 Javascript
分享一个自己写的table表格排序js插件(高效简洁)
2011/10/29 Javascript
利用js实现遮罩以及弹出可移动登录窗口
2013/07/08 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
jQuery实现3D文字特效的方法
2015/03/10 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
require.js 加载过程与使用方法介绍
2018/10/30 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
js实现动态时钟
2020/03/12 Javascript
零基础学Python(一)Python环境安装
2014/08/20 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
在pycharm中显示python画的图方法
2019/08/31 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
css3实现简单的白云飘动背景特效
2020/10/28 HTML / CSS
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
2013/01/09 HTML / CSS
英国派对礼服和连衣裙购物网站:TFNC London
2018/07/07 全球购物
欧洲最大的预定车位市场:JustPark
2020/01/06 全球购物
公务员个人自我评价分享
2013/11/06 职场文书
商场消防演习方案
2014/02/12 职场文书
师德师风的心得体会
2014/09/02 职场文书
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis
详解ZABBIX监控ESXI主机的问题
2022/06/21 Servers