2012-03-03 17 views
0

今日の日が土曜日か日曜日かを確認する必要があります。そして、私はそれのための機能のための単純なを使用しようとしているが、私はなぜそれが動作していないようにわからない。 PHP - If()条件

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

そして、次のように私が取得しています出力は次のようになります。

今日は土曜です - 平日

かの機能とまったく間違っていますか?

+0

以下1あなたのOR(||)にAND(&&)のp –

+2

がはるかに簡単なアイデアのためにこの回答を参照してください=:http://stackoverflow.com/a/4802362/362536 – Brad

答えて

2

ORを実行して、1つまたは他のステートメントが真であるかどうかをチェックします。これは、$tdate != "Sat"がfalseである間に、$tdate != "Sun"が真であることを意味します。 OR(||)をAND(& &)に変更するだけで、コードは正常に動作します。

+0

私は少し混乱しています。 ANDを伴うif文に対して、両方の条件が真となるべきではないか? if($ tdate!= "Sat" && $ tdate!= "Sun"){} <は土曜日ではなく、日曜日ではないのですか?そして、($ tdate!= "Sat" || $ tdate!= "Sun"){}は土曜日ではないことを意味し、2番目の条件をチェックし、日曜日でない場合には角括弧内にあるものを実行します。しかし、土曜日の場合は、この機能をスキップしてください。私はここで少し混乱している。このクエリに返信すると、この混乱を解消するのに役立ちます。ありがとう! –

+0

基本的には、その日が週末でない場合、このスニペットをチェックインしています。週末かどうかを調べるには、 '!='ではなく '!|'を '&&' –

+0

と混同すれば、真理値表(http:// en.wikipedia.org/wiki/Truth_table)、その動作を確認してください –

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

あなたは問題を説明していない、あなたは解決策を示すだけです。 IMO、悪い答え、私はdownvoted。 –

+0

@ RichardJ.RossIIIこれは説明する必要はありません、おそらくopのためのちょうどミス。 – xdazz

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

それはSatだ、だから、Sunないとifの条件ではなく&& true.useです。

1

その「今日は土曜日ではありません」OR「今日は日曜日ではありません」場合は、あなたが言っている何

を修正する必要がある論理エラーが

あり、その平日

利回りので、 TRUEの修正は、2つの方法があり、第一何xdazにすることができ

平日として 、なぜなら(日が土曜日または日曜日のどちらかであるとき)は、2つの条件のいずれかがを満たしており、それが真のブロックとプリントに入りますzが与えたか、だけ変更する必要が

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