为了账号安全,请及时绑定邮箱和手机立即绑定

带 goto 的 PHP 数字大小写

带 goto 的 PHP 数字大小写

PHP
胡子哥哥 2022-07-16 10:16:46
我愉快地发现可以在 PHP中使用 goto :    case 222: return "A"; break;    case 231: return "B"; break;    case 234: goto 231;    case 237: return "C"; break;    case 251: goto 231;    case 285: return "D"; break;我有一些这样的代码。有很多键共享相同的值,所以我尝试使用 goto 来消除冗余。我使用了一个开关,因为它在这里比 if/else 分支更简单。由于各种原因,每个案例都必须如上所述明确定义,即使它只是针对另一个案例。但是,通过验证器运行它,我得到Parse error: syntax error, unexpected ''231'' (T_CONSTANT_ENCAPSED_STRING), expecting identifier (T_STRING) in your code我尝试用单引号将这些案例括起来,但这仍然没有通过。这似乎与上面的示例一致。我在这里缺少什么语法?
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

标签不能只是数字,因此您只能通过为cases您想要定位的额外标签(并gotos使用这些新标签进行修改)来解决它:


<?php


function foo($value) {

    switch ($value) {

        case 222:

            return "A";

        case 231:

            label231: // new label here

            return "B";

        case 234:

           goto label231;

        case 237:

           return "C";

        case 251: 

           goto label231;

        case 285:

           return "D";

    }

}


var_dump(foo(251));

但是,正如评论中提到的,我更喜欢选择不同的方法(关联数组等)。


查看完整回答
反对 回复 2022-07-16
  • 1 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信