2012-11-22 70 views
3

我真的可以那樣做嗎?是否可以在切換控制流的情況下調用某個功能?

例如:

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

} 
+1

我不確定,這是可能的,但爲什麼你需要,你可以提前獲得價值,然後把它放在案件陳述 – Rab

+1

爲什麼不試試呢? (擾流板:可以,我剛剛試了一下:)) –

回答

3

是的,它是可能的。

您可以調用內置函數或用戶定義的函數作爲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定義你會看到一個函數調用落在那裏。

+0

開關($ VAR){ 情況is_numeric(本): // } 可能,纔有可能..喜歡jQuery中的 '本'變量很好。但我不知道PHP ..它會是什麼樣子.. – Raioneru

+0

好的,謝謝你的迴應。我現在明白了。 :) – Raioneru

相關問題