2011-04-21 186 views
1
switch ($sort) { 
    case 'abc': 
     $order_by = 'subject ASC'; 
     break; 
    case 'fn': 
     $order_by = 'u.username ASC'; 
     break; 
    case 'rd': 
     $order_by = 'p.posted_on DESC'; 
     break; 
    default: 
     $order_by = 'p.posted_on DESC'; 
     $sort = 'rd'; 
     break; 
} 

我想稍微修改一小段代碼我只是不太確定如何去做。林相當肯定,我可以做到這一點,如果還有其他如果,但我假設改變這個開關將是非常簡單的,但後來我不知道。PHP開關語句

反正這是林試圖做的,讓我們的'案件 'ABC':例如

我想

case 'abc': 
    $order_by = 'subject DESC'; 
    break; 

IF

case 'abc': 
    $order_by = 'subject ASC'; 
    break; 

這樣一來,當你正在整理記錄,如果排序已經使用ASC,它將切換到DESC,現在我的排序按鈕只能以一種方式工作。

TY

回答

3
switch ($sort) { 
    case 'abc': 
     $order_by = 'subject ASC'; 
     $sort = 'cba' 
     break; 
    case 'cba': 
     $order_by = 'subject DESC'; 
     $sort = 'abc' 
     break; 
    case 'fn': 
     $order_by = 'u.username ASC'; 
     break; 
    case 'rd': 
     $order_by = 'p.posted_on DESC'; 
     break; 
    default: 
     $order_by = 'p.posted_on DESC'; 
     $sort = 'rd'; 
     break; 
} 
+0

這兩個答案看起來不錯,但我會嘗試這一個,對我來說似乎更簡單,謝謝! :) – aph107 2011-04-21 04:35:44

+0

+1我也喜歡這種方式... – Ben 2011-04-21 04:36:47

3

我會設置一個觸發變量:

$abcToggle = false; 

//... 

case 'abc': 
    if($abcToggle) { 
    // do something... 
    abcToggle = false; 
    } 
    else { 
    // do something else... 
    $abcToggle = true; 
    } 
break; 

或者,也許一個更簡潔的方式:

$abcToggle = false; 

//... 

case 'abc': 
    $abcToggle ? $orderBy = 'DESC' : $orderBy = 'ASC'; 
    $abcToggle ? $abcToggle = false : $abcToggle = true; 
break; 
+0

謝謝指點先生! :) – aph107 2011-04-21 04:34:26

+0

不是問題,我的好人。 – Ben 2011-04-21 04:35:19