我真的可以那样做吗?
例子:
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
,如果您看到 expr 的定义,您会发现其中有一个函数调用。
关于php - 在切换控制流的情况下是否可以调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13506176/