跳转到PHP switch语句中的另一个案例

时间:2011-05-02 15:41:46

标签: php switch-statement

说我有这样的事情:

switch ($_GET['func']) {
    case 'foo':
        dobar();
        break;
    case 'orange':
        if ($_GET['aubergine'] == 'catdog') {
            // **DO DEFAULT OPTION**
        } else {
            dosomethingElse();
        }
        break;
    default:
        doDefault();
}

如何从default中的标记位置跳转到case 'orange'个案例?

2 个答案:

答案 0 :(得分:9)

尝试:

switch($_GET['func']) {
  case 'foo':
    dobar();
    break;

  case 'orange':
    if($_GET['aubergine'] != 'catdog') {
        dosomethingElse();
        break;
    }

  default:
    doDefault();
}

答案 1 :(得分:9)

Yo dawg,您可以使用名为goto的酷炫新功能。

<?php
$func = "orange";
function doDefault() { echo "yeehaw!"; return; }
function dobar() { return; }
function dosomethingElse() { return; }

switch ($func) {
    case 'foo':
        dobar();
        break;
    case 'orange':
        if (true) {
            goto defaultlabel;
        } else {
            dosomethingElse();
        }
        break;
    default:
    defaultlabel:
        doDefault();
}