我真的可以那樣做嗎?是否可以在切換控制流的情況下調用某個功能?
例如:
switch($string){
case function_name(preferably built-in functions):
//codes to run...
break;
....
....
}
我真的可以那樣做嗎?是否可以在切換控制流的情況下調用某個功能?
例如:
switch($string){
case function_name(preferably built-in functions):
//codes to run...
break;
....
....
}
是的,它是可能的。
您可以調用內置函數或用戶定義的函數作爲case表達式。
作爲一個例子:
function foo() { return 1; }
function bar() { return 2; }
$var = 3;
switch($var) {
case foo():
echo "FOO\n";break;
case bar():
echo "BAR\n";break;
case max(1,2,3):
echo "MAX\n"; break;
}
輸出
MAX
可以看看PHP here和開關構建體的語法定義爲:
switch_case_list = "{" [";"] {case_list} "}"
| ":" [";"] {case_list} "endswitch" ";" ;
case_list = "case" expr [":"|";"] inner_statement_list
| "default" [":"|";"] inner_statement_list ;
顯然case
後可以跟一個expr
,如果你看到th e定義你會看到一個函數調用落在那裏。
我不確定,這是可能的,但爲什麼你需要,你可以提前獲得價值,然後把它放在案件陳述 – Rab
爲什麼不試試呢? (擾流板:可以,我剛剛試了一下:)) –