我可以在 switch 函数的 case 中使用 'or' 逻辑运算符(或类似的东西)吗?

Can I use an 'or' logical operator (or something similar) within a case of the switch function?

我有这段代码,但它不起作用,因为它在应该回显“24”时回显了“23”(因为现在是二月)。

我知道我可以将 or 分解为其他情况,这样就可以了。我只是想知道在这种情况下是否有办法使用 'or' 或类似的东西来帮助整理得更多。

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

按照您的尝试,您的建议是不可能的,但请看这个简单的示例:

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