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简介
Oct 09 PHP
php smarty模版引擎中的缓存应用
Dec 11 PHP
php入门学习知识点七 PHP函数的基本应用
Jul 14 PHP
MySQL 日期时间函数常用总结
Jun 12 PHP
typecho插件编写教程(二):写一个新插件
May 28 PHP
浅谈php7的重大新特性
Oct 23 PHP
php生成curl命令行的方法
Dec 14 PHP
php关闭warning问题的解决方法
May 17 PHP
php中array_slice和array_splice函数解析
Oct 18 PHP
php获取数据库中数据的实现方法
Jun 01 PHP
自写的利用PDO对mysql数据库增删改查操作类
Feb 19 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 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
使用PHPExcel导出Excel表
2018/09/08 PHP
通过PHP设置BugFree获取邮箱通知
2019/04/25 PHP
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
javascript特殊用法示例介绍
2013/11/29 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
Javascript基础回顾之(一) 类型
2017/01/31 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
详解vue的数据劫持以及操作数组的坑
2019/04/18 Javascript
Node.js创建一个Express服务的方法详解
2020/01/06 Javascript
详解JS函数防抖
2020/06/05 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
python中 chr unichr ord函数的实例详解
2017/08/06 Python
python二维列表一维列表的互相转换实例
2018/07/02 Python
对Python中内置异常层次结构详解
2018/10/18 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
2020/01/13 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2020/04/22 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
个人生活学习自我评价范文
2013/11/26 职场文书
开学典礼决心书
2014/03/11 职场文书
责任心演讲稿
2014/05/14 职场文书
2014年商场国庆节活动策划方案
2014/09/16 职场文书
工会积极分子个人总结
2015/03/03 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
Go语言基础知识点介绍
2021/07/04 Golang