加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在函数php中使用goto

发布时间:2020-12-13 18:01:48 所属栏目:PHP教程 来源:网络整理
导读:有没有办法为 PHP goto定义全局标签(类似变量),以便在函数声明中使用它.我想做以下事情: function myFunction() { if (condition) { goto someLine; }}someLine:// ....myFunction(); 当我使用这个代码时,它说 PHP Fatal error: 'goto' to undefined label
有没有办法为 PHP goto定义全局标签(类似变量),以便在函数声明中使用它.我想做以下事情:
function myFunction() {
   if (condition) {
     goto someLine;
  }
}


someLine:
// ....

myFunction();

当我使用这个代码时,它说

PHP Fatal error:  'goto' to undefined label "someLine"

我知道不建议使用goto语句.但在我的情况下我需要它.我知道也许总会有goto的替代品,只是在我的情况下它会使代码更容易和可理解

你不能转到我认为的函数之外: http://php.net/manual/en/control-structures.goto.php

直接报价:
这不是完全不受限制的转到.目标标签必须位于同一文件和上下文中,这意味着您不能跳出函数或方法,也不能跳到一个.

这可能与php被解析的事实有关,跳出函数会导致内存泄漏或其他因为它从未正确关闭.
正如上面所说的其他人一样,你真的不需要goto.您可以从函数中返回不同的值,并为每个值设置条件. Goto对于现代编码来说是非常糟糕的做法(如果您使用的是基本的,则可以接受).

例:

function foo(a) {
    if (a==1) {
        return 1;
    } elseif (a==3) {
        return 2;
    } else {
        return 3;
    }
}

switch (foo(4)) { //easily replaceable with elseif chain
    case 1: echo 'Foo was 1'; break; //These can be functions to other parts of the code
    case 2: echo 'Foo was 3'; break;
    case 3: echo 'Foo was not 1 or 3';
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读