我需要检查今天是周六还是周日。我试着使用简单的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。请使用&&
。