2012-08-29 55 views
3

我有以下陳述,已經總結。我想知道如何在一個案例中顯示兩個變量。在單個開關盒中包含「And」多個變量

正如我所看到的,我希望當date_avl和pro_qty的標準都滿足時,pro_st = 0,但不知道正確的編碼方式。

case $insert_pro : 
    case $pro_exists_row['date_aval'] == '0000-00-00' : and $sql_data['pro_qty'] == 0 : 
    case $sql_data['pro_date_avl'] > date('Y-m-d') : 
     $sql_data['pro_st'] = '0' ; 
     break ; 
    default : 
     $sql_data['pro_st'] = '1' ; 

任何意見,將不勝感激。

回答

1

你看起來像你需要一個,如果還是有可能的,如果/ elseif的語句:

if (($pro_exists_row['date_aval'] == '0000-00-00' && $sql_data['pro_qty'] == 0) || $sql_data['pro_date_avl'] > date('Y-m-d')) 
{ 
    // This is the first two conditions of you case statement - either of the conditions are met 
    $sql_data['pro_st'] = '0' ; 
} 
else 
{ 
    // This is he default as neither of the others were met... 
    $sql_data['pro_st'] = '1' ; 
} 
+0

正是我想要的,謝謝! – user1633094

1

您只能使用switch語句來檢查一個var的值,而不是像您正在嘗試的那樣檢查複合條件。您可能需要使用if語句。

+0

你應該看看[手冊上開關的情況下(http://php.net/manual/en /control-structures.switch.php)或使用一個如果像我建議的jeroen – 2012-08-29 12:17:57