3

私は本当にそれを行うことができますか?

例:

switch($string){
 case function_name(preferably built-in functions): 
  //codes to run...
  break;
  ....
  ....

}
4

1 に答える 1

3

はい、可能です。

組み込み関数またはユーザー定義関数のいずれかをケース式として呼び出すことができます。

例として:

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の文法を見ることができ、スイッチ構造は次のように定義されています。

switch_case_list = "{" [";"] {case_list} "}"
    | ":" [";"] {case_list} "endswitch" ";" ;

case_list = "case" expr [":"|";"] inner_statement_list
    | "default" [":"|";"] inner_statement_list ;

明らかに、the のcase後に anexprを続けることができ、expr の定義を見ると、関数呼び出しがそれに該当することがわかります。

于 2012-11-22T05:13:06.883 に答える