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
相关产品推荐
相关产品推荐

