2012-03-03 118 views
0

我需要檢查今天是星期六還是星期日。我正在嘗試使用簡單的if函數,但我不知道爲什麼它不起作用。PHP - 如果()條件

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

而且我得到的輸出如下:

今天是週六 - 週日

什麼是完全錯誤的,如果功能?

+0

一你只需要改變你的OR(||)到AND(&&)= P – 2012-03-03 05:11:02

+2

看到這個答案的更簡單的想法:http://stackoverflow.com/a/4802362/362536 – Brad 2012-03-03 05:12:39

回答

2

您正在執行OR,它檢查一個或其他語句是否爲真。這意味着雖然$tdate != "Sat"爲false,$tdate != "Sun"爲true。如果您只是將您的OR(||)更改爲AND(& &),則代碼將正常工作。

+0

我有點困惑。對於帶有AND的if語句,不應該都是正確的?如果($ tdate!=「星期六」&& $ tdate!=「太陽」){} <是否意味着它不是星期六而不是星期天?如果($ tdate!=「Sat」|| $ tdate!=「Sun」){} <表示不是星期六,請檢查第二個條件,如果不是星期天,則運行括號中的內容。但如果是星期六,那麼如果函數跳過這個。我在這裏有點困惑。回覆此查詢應該可以幫助我清除這種混淆。謝謝! – 2012-03-03 05:30:45

+0

基本上,如果一天不是一個週末,你正在檢查這個片段。要檢查它是否是一個週末,如果它仍然讓你感到困惑,那麼你可以用'||'代替'!'代替'!='用'&&' – 2012-03-03 08:21:35

+0

,最好畫一個[真值表](http:// en.wikipedia.org/wiki/Truth_table)並檢查它的行爲 – 2012-03-03 08:23:23

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

你不解釋問題,你只是顯示解決方案。國際海事組織,一個不好的答案,所以我downvoted。 – 2012-03-03 05:14:27

+0

@ RichardJ.RossIII這不需要解釋,也許只是一個小姐。 – xdazz 2012-03-03 05:19:36

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

時,它的Sat,所以它不是Sunif條件true.use &&代替。

1

它需要修復

你所說的是

如果「今天不是星期六」或「今天不是星期天」的邏輯錯誤,那麼其在平日

所以產量真實的,因爲,這兩個條件一個已經滿足(那天是星期六或星期日),並進入真正的塊,並打印作爲平日

修正方法可以有兩種方式,第一個是什麼xdaz ž給或低於

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