php - 在切换控制流的情况下是否可以调用函数?

标签 php switch-statement

我真的可以那样做吗?

例子:

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/

相关文章:

php -::class 和 get_class 之间的区别

Python字典切换通过其他函数而不仅仅是调用的函数

c - 为什么这个 switch 语句返回 ZeroHello World 而不是零?

java - 在 java 的 switch 语句中使用 "||"

php - 用户在 Laravel 上注册后无法登录

php - Twilio - 2 次响铃后转接调用

php - 从第二个表中获取总值(value)并将其显示在表中

javascript - 获取级联单选按钮值的值

coding-style - Switch 语句失败...应该允许吗?

带有切换/删除类之谜的 jQuery 单选按钮