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 xml文件操作代码(一)
Mar 20 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
解析php中如何直接执行SHELL
Jun 28 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
Aug 15 PHP
PHP 导出Excel示例分享
Aug 18 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 PHP
php三种实现多线程类似的方法
Oct 30 PHP
CodeIgniter配置之autoload.php自动加载用法分析
Jan 20 PHP
CodeIgniter常用知识点小结
May 26 PHP
php+ajax注册实时验证功能
Jul 20 PHP
PHP实现的文件操作类及文件下载功能示例
Dec 24 PHP
php中文乱码问题的终极解决方案汇总
Aug 01 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数据饼图效果实现代码
2011/11/23 PHP
php中文验证码实现示例分享
2014/01/12 PHP
什么情况下可以不写PHP的闭合标签“?&gt;”
2014/08/28 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
JavaScript手机振动API
2016/06/11 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
JavaScript使用readAsDataURL读取图像文件
2017/05/10 Javascript
Echarts基本用法_动力节点Java学院整理
2017/08/11 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
浅谈Vue的加载顺序探讨
2017/10/25 Javascript
JavaScript 异步调用
2017/10/25 Javascript
node实现基于token的身份验证
2018/04/09 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
python从入门到精通(DAY 1)
2015/12/20 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
使用Python封装excel操作指南
2021/01/29 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
测试驱动开发的主要步骤是什么
2014/12/10 面试题
信息系统专业个人求职信范文
2013/12/07 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
五年级下册复习计划
2015/01/19 职场文书
上班迟到检讨书范文
2015/05/06 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python
Pycharm 如何设置HTML文件自动补全代码或标签
2021/05/21 Python
JavaScript原型链详解
2021/11/07 Javascript