PHP-goto操作符实际应用

admin 轻心小站 关注 LV.19 运营
发表于php技术学习版块 教程

官方介绍goto 操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记(例如 name: ),而跳转指令是 goto 之后接上目标位置的标记。PHP 中goto 操作符的使用有

官方介绍

goto 操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记(例如 name: ),而跳转指令是 goto 之后接上目标位置的标记。

PHP 中goto 操作符的使用有一定限制:
goto 跳转的目标位置只能位于同一个文件和作用域内;
goto 无法跳出一个函数或类方法,也无法跳入到另一个函数;
goto 无法跳入到任何循环或者 switch 结构中;
goto 可以跳出循环或者 switch。

我们通常是使用 goto 代替 break 来跳出嵌套的多层循环,goto 本身并没有跳出循环的作用,但其跳转到指定位置的作用使得其可以代替 break 来跳出循环。

和其他语言一样,PHP 中并不鼓励滥用 goto,滥用 goto 会导致程序的可读性严重下降。

提示:goto 操作符仅在 PHP5.3 及以上版本有效。

注意:goto 不能从循环外跳入循环中,只能跳出。

使用案例

原来 break 的使用方法:

$array = [1, 2, 3, 4, 5];
$list = [1, 2, 3, 4, 5];
foreach ($array as $num) {
    $status = false;
    // 要求直接跳出2个循环之外
    foreach ($list as $i) {
        if ($num == 3 && $i == 4) {
            $status = true;
            break;
        }
    }
    if ($status == true) {
        break;
    }
}
echo 'end';

改成 goto 的使用方法:

$array = [1, 2, 3, 4, 5];
$list = [1, 2, 3, 4, 5];
foreach ($array as $num) {
    foreach ($list as $i) {
        // 要求直接跳出2个循环之外
        if ($num == 3 && $i == 4) {
            goto end;
        }
    }
}
// 定义goto
end:
echo 'end';


文章说明:

本文原创发布于探乎站长论坛,未经许可,禁止转载。

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,探乎站长论坛平台仅提供信息存储空间服务。

评论列表 评论
发布评论

评论: PHP-goto操作符实际应用

粉丝

0

关注

0

收藏

0

已有0次打赏