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 相关文章推荐
我的论坛源代码(七)
Oct 09 PHP
怎样在PHP中通过ADO调用Asscess数据库和COM程序
Oct 09 PHP
php str_pad() 将字符串填充成指定长度的字符串
Feb 23 PHP
Linux下CoreSeek及PHP扩展模块的安装
Sep 23 PHP
浅析php header 跳转
Jun 17 PHP
PHP生成指定长度随机数最简洁的方法
Jul 14 PHP
php生成随机数的三种方法
Sep 10 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 PHP
PHP aes (ecb)解密后乱码问题
Jun 22 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
Aug 01 PHP
PHP使用mysqli操作MySQL数据库的简单方法
Feb 04 PHP
php快速导入大量数据的实例方法
Sep 23 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
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
2013/09/30 PHP
php数据库备份还原类分享
2014/03/20 PHP
Yii2创建表单(ActiveForm)方法详解
2016/07/23 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
js函数排序的实例代码
2013/07/01 Javascript
用js来获取上传的文件名纯粹是为了美化而用
2013/10/23 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
JavaScript中的splice()方法使用详解
2015/06/09 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
vue的for循环使用方法
2019/02/12 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
c++生成dll使用python调用dll的方法
2014/01/20 Python
python自定义解析简单xml格式文件的方法
2015/05/11 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
Python 移动光标位置的方法
2019/01/20 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
Django 框架模型操作入门教程
2019/11/05 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
如何写出好的Java代码
2014/04/25 面试题
商务英语应届生自我鉴定
2013/12/08 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
毕业实习计划书
2015/01/16 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
适合毕业生创业的项目怎么找?
2019/08/08 职场文书
MySQL基础(二)
2021/04/05 MySQL
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers