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 MYSQL乱码问题,使用SET NAMES utf8校正
Nov 30 PHP
用Zend Encode编写开发PHP程序
Feb 21 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
Sep 25 PHP
ThinkPHP3.1新特性之内容解析输出详解
Jun 19 PHP
ThinkPHP实现二级循环读取的方法
Nov 03 PHP
php中 $$str 中 &quot;$$&quot; 的详解
Jul 06 PHP
PHP加密解密函数详解
Oct 28 PHP
深入解析PHP的Yii框架中的缓存功能
Mar 29 PHP
PHP堆栈调试操作简单示例
Jun 15 PHP
PHP Include文件实例讲解
Feb 15 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 PHP
php实现根据身份证获取精准年龄
Feb 26 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获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
自定义事件解决重复请求BUG的问题
2017/07/11 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
Python程序运行原理图文解析
2018/02/10 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
Python中zip()函数的简单用法举例
2019/09/02 Python
pytorch实现MNIST手写体识别
2020/02/14 Python
python内打印变量之%和f的实例
2020/02/19 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
2021/01/24 Python
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
sealed修饰符是干什么的
2012/10/23 面试题
技校毕业生的自我评价
2013/12/27 职场文书
税务会计岗位职责
2014/02/18 职场文书
2014年应急工作总结
2014/12/11 职场文书
2015年试用期工作总结
2014/12/12 职场文书
违纪检讨书范文
2015/01/27 职场文书
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python
Django实现WebSocket在线聊天室功能(channels库)
2021/09/25 Python
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android