2017-02-05 1 views
0

J'ai ce code et ça ne marche pas parce qu'il fait écho à "23" quand il devrait faire écho à "24" (parce que c'est février maintenant). Je sais que je peux diviser le ou dans d'autres cas, de cette façon cela fonctionne. Je me demandais simplement s'il y avait un moyen d'utiliser un «ou» ou quelque chose de similaire dans cette situation pour aider à ranger encore plus.Puis-je utiliser un opérateur logique 'ou' (ou quelque chose de similaire) dans un cas de la fonction de commutation?

<?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

Ce n'est pas comment vous utilisez swicth/case. Veuillez consulter le manuel: http://php.net/manual/fr/control-structures.switch.php. Vous essayez actuellement de l'utiliser de la même manière que 'if/else'. –

Répondre

3

Ce que vous proposez est impossible de la façon dont vous essayez, mais un coup d'oeil à cet exemple simple:

<?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; 

Ou, plus facile et plus robuste:

<?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! Je vous remercie :) –