2017-02-05 3 views
0

У меня есть этот код, и он не работает, потому что его эхо «23», когда он должен эхо «24» (потому что сейчас февраль).Могу ли я использовать логический оператор (или что-то подобное) в случае функции переключателя?

Я знаю, что могу разбить или в другое дело, так оно и работает. Мне просто интересно, есть ли способ использовать «или» или что-то подобное в этой ситуации, чтобы помочь убрать еще больше.

<?php 

$paymentday = null; 

switch ($paymentday){ 
    case date('M') == "Jan" or 
     date('M') == "Feb" or 
     date('M') == "Mar" or 
     date('M') == "Apr" or 
     date('M') == "May" or 
     date('M') == "Jul" or 
     date('M') == "Aug" or 
     date('M') == "Okt" or 
     date('M') == "Nov": 
     $paymentday = "24"; 
     break; 
    case date('M') == "Jun": 
     $paymentday = "23"; 
     break; 
    case date('M') == "Sep": 
     $paymentday = "22"; 
     break; 
    case date('M') == "Dec": 
     $paymentday = "21"; 
     break; 
} 

echo $paymentday; 
?> 
+1

Это не так, как вы используете swicth/case. Пожалуйста, ознакомьтесь с руководством: http://php.net/manual/en/control-structures.switch.php. Вы в настоящее время пытаетесь использовать его так же, как 'if/else'. –

ответ

3

Что вы предлагаете не возможно, как вы попробовать, но взгляните на этом простом примере:

<?php 
$paymentday = null; 
switch (date('M')){ 
    case "Jan": 
    case "Feb": 
    // ... 
     $paymentday = "24"; 
     break; 
    case "Jun": 
     $paymentday = "23"; 
     break; 
    case "Sep": 
     $paymentday = "22"; 
     break; 
    case "Dec": 
     $paymentday = "21"; 
     break; 
} 
echo $paymentday; 

Или, проще и надежнее:

<?php 
$paymentday = null; 
switch (date('M')){ 
    case "Jun": 
     $paymentday = "23"; 
     break; 
    case "Sep": 
     $paymentday = "22"; 
     break; 
    case "Dec": 
     $paymentday = "21"; 
     break; 
    default: 
     $paymentday = "24"; 
} 
echo $paymentday; 
+0

Woooow cool! Спасибо :) –

Смежные вопросы