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 相关文章推荐
PHP无限分类(树形类)的深入分析
Jun 02 PHP
163的邮件用phpmailer发送(实例详解)
Jun 24 PHP
ThinkPHP验证码和分页实例教程
Aug 22 PHP
PHP处理Json字符串解码返回NULL的解决方法
Sep 01 PHP
PHP利用APC模块实现文件上传进度条的方法
Jan 26 PHP
php计算整个mysql数据库大小的方法
Jun 19 PHP
CI框架中redis缓存相关操作文件示例代码
May 17 PHP
php版微信小店API二次开发及使用示例
Nov 12 PHP
/etc/php-fpm.d/www.conf 配置注意事项
Feb 04 PHP
PHP工厂模式、单例模式与注册树模式实例详解
Jun 03 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 PHP
Yii中特殊行为ActionFilter的使用方法示例
Oct 18 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
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
PHP 日志缩略名的创建函数代码
2010/05/26 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
python计算N天之后日期的方法
2015/03/31 Python
python中defaultdict的用法详解
2017/06/07 Python
Python 中字符串拼接的多种方法
2018/07/30 Python
Python Opencv任意形状目标检测并绘制框图
2019/07/23 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
pandas 数据类型转换的实现
2020/12/29 Python
卫校护理专业毕业生求职信
2013/11/26 职场文书
酒店个人求职信范文
2014/01/25 职场文书
大学军训感言200字
2014/02/26 职场文书
会计岗位职责范本
2014/03/07 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
80后婚前协议书范本
2014/10/24 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS
MySQL中一条SQL查询语句是如何执行的
2022/04/08 MySQL