私は本当にそれを行うことができますか?
例:
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;
....
....
}
はい、可能です。
組み込み関数またはユーザー定義関数のいずれかをケース式として呼び出すことができます。
例として:
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 の定義を見ると、関数呼び出しがそれに該当することがわかります。