PHP - If () Condition



我需要检查今天是周六还是周日。我试着使用简单的if函数,但我不知道为什么它似乎不起作用。

<?php
 $tdate = date("D");
 echo "Today is $tdate - ";
 if ($tdate != "Sat" || $tdate != "Sun") {
   echo "Weekday";
 }
 else {
  echo "Weekend: $tdate";
 }
?>

我得到的输出如下:

今天是周六-工作日

if函数到底出了什么问题?

您正在执行OR,它检查其中一个或其他语句是否为true。这意味着当$tdate != "Sat"为假时,$tdate != "Sun"为真。如果您简单地将OR(||)更改为AND(&&),您的代码将正常工作。

if ($tdate != "Sat" && $tdate != "Sun") {

这是一个需要修复的逻辑错误

你说的是

如果"今天不是周六"或"今天不是周日",则为工作日

因此产生TRUE,因为两个条件中的一个已经满足(当一天是周六或周日时),并且它进入真实块并打印为工作日

修复可以通过两种方式,第一种是xdazz给出的,或者是下面的

<?php
 $tdate = date("D");
 echo "Today is $tdate - ";
 if (!($tdate == "Sat" || $tdate == "Sun")) {
   echo "Weekday";
 }
 else {
  echo "Weekend: $tdate";
 }
?>
 if ($tdate != "Sat" || $tdate != "Sun")

当它是Sat时,所以它不是Sun,并且if的条件为true。请使用&&

最新更新