You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP星期判断if语句问题:为何始终返回‘Today is Monday’结果?

你的PHP代码存在逻辑错误

核心问题:逻辑或(||)的写法完全错误

你代码里的date('l') == 'Tuesday' || 'Wednesday'以及date('l') == 'Saturday' || 'Sunday'是典型的逻辑错误。在PHP中,||两边必须是完整的布尔判断表达式,单独写'Wednesday'这类非空字符串会被直接判定为true,导致这两个elseif条件永远成立。

一旦程序走到第一个错误的elseif分支(非周一的情况),就会直接执行它的代码,后面的周四、周五、周末分支都不会被触发。你调换周一和周五分支后始终只得到“Today is Monday”,大概率是调换后把周一的分支放在了最前面,且当天正好是周一;但不管怎样,代码本身的逻辑或使用错误是根本问题。

其他小问题

  • echo "Today Friday";缺少了is,正确写法应为echo "Today is Friday";

修正后的代码

你可以用两种方式修正:

方式一:修正逻辑或的写法

if (date('l') == 'Monday') {
    echo "Today is Monday";
} elseif (date('l') == 'Tuesday' || date('l') == 'Wednesday') {
    echo "Today is either Tuesday or Wednesday";
} elseif (date('l') == 'Thursday') {
    echo "Today is Thursday";
} elseif (date('l') == 'Friday') {
    echo "Today is Friday";
} elseif (date('l') == 'Saturday' || date('l') == 'Sunday') {
    echo "Today is the weekend";
}

方式二:用switch语句更简洁

$today = date('l');
switch ($today) {
    case 'Monday':
        echo "Today is Monday";
        break;
    case 'Tuesday':
    case 'Wednesday':
        echo "Today is either Tuesday or Wednesday";
        break;
    case 'Thursday':
        echo "Today is Thursday";
        break;
    case 'Friday':
        echo "Today is Friday";
        break;
    case 'Saturday':
    case 'Sunday':
        echo "Today is the weekend";
        break;
}

内容的提问来源于stack exchange,提问作者trademark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 04:18:19