我愉快地發(fā)現(xiàn)可以在 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 來消除冗余。我使用了一個開關(guān),因為它在這里比 if/else 分支更簡單。由于各種原因,每個案例都必須如上所述明確定義,即使它只是針對另一個案例。但是,通過驗證器運行它,我得到Parse error: syntax error, unexpected ''231'' (T_CONSTANT_ENCAPSED_STRING), expecting identifier (T_STRING) in your code我嘗試用單引號將這些案例括起來,但這仍然沒有通過。這似乎與上面的示例一致。我在這里缺少什么語法?
1 回答

慕尼黑的夜晚無繁華
TA貢獻1864條經(jīng)驗 獲得超6個贊
標簽不能只是數(shù)字,因此您只能通過為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));
但是,正如評論中提到的,我更喜歡選擇不同的方法(關(guān)聯(lián)數(shù)組等)。
- 1 回答
- 0 關(guān)注
- 110 瀏覽
添加回答
舉報
0/150
提交
取消