2012-03-03 2 views
0

Мне нужно проверить, является ли сегодня днем ​​суббота или воскресенье. И я пытаюсь использовать простую функцию if для этого, но я не знаю, почему это не работает.PHP - If() Условие

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

И выход я получаю следующим образом:

Сегодня Сб - Будни

Что именно случилось с, если функция?

+0

Вам просто нужно изменить ваш ИЛИ (||) на И (&&) = р –

+2

Смотрите этот ответ на более простой идее: http://stackoverflow.com/a/4802362/362536 – Brad

ответ

2

Вы выполняете операцию ИЛИ, которая проверяет правильность одного или нескольких утверждений. Это означает, что в то время как $tdate != "Sat" является ложным, значение $tdate != "Sun". Если вы просто измените OR (||) на И (& &), ваш код будет работать нормально.

+0

Я немного смущен. Для утверждения if с AND не должны выполняться оба условия? if ($ tdate! = "Sat" && $ tdate! = "Sun") {} <означает, что это не Sat & not Sunday right? И если ($ tdate! = "Sat" || $ tdate! = "Sun") {} <означает, что если это не в субботу, проверьте второе условие, и если это не воскресенье, тогда запустите то, что находится в скобках. Но если это суббота, то пропустите эту функцию if. Я немного смущен. Ответ на этот вопрос должен помочь мне устранить эту путаницу. Благодаря! –

+0

В принципе, вы проверяете этот фрагмент, если день не является выходным. Чтобы проверить, является ли это выходным, вы должны использовать '==' с '||' вместо '! =' С '&&' –

+0

, если он все еще вас смущает, лучше нарисуйте [таблицу истинности] (http: // ru.wikipedia.org/wiki/Truth_table) и проверить, как он себя ведет –

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

Вы не объясняете проблему, вы просто показываете решение. ИМО, плохой ответ, поэтому я ниспровергаю. –

+0

@ RichardJ.RossIII Это не нужно объяснять, возможно, просто мисс для оп. – xdazz

0
if ($tdate != "Sat" || $tdate != "Sun") 

когда это Sat, так что это не Sun и состояние if является true.use && вместо этого.

1

Его логическая ошибка вам нужно исправить

То, что вы говорите,

Если «сегодня не суббота» ИЛИ «сегодня не воскресенье», то его Будние

Так что дает TRUE, потому что, один из двух условий удовлетворила (когда день либо суббота или воскресенье), и он переходит в истинный блок и печатает в будний

исправление может быть двумя способами, первый, что xdaz г дал ИЛИ один ниже

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