うまくいっていると思いますが、あなたはそれを間違って解釈しています。あなたの値は8です。したがって、あなたの表現は実際には次のとおりです。
if (8 !== 1 || 8 !== 8) {
// ...
}
true
8 は1と等しくないため、最初の式はYou cannot do that!
です。
AND式 ( ) が必要&&
なのは、値が 1 AND 8 以外の場合にエラー メッセージを表示するためです。
ここで何が起こっているのかよくわかっていないようですので、さらに説明させてください。
1 から 8 までのすべての数について個別に考え$o['statuss'] !== 1
てみましょう。$o['statuss'] !== 8
1 !== 1
=> false
, 1 !== 8
=> true
:1 !== 8
メッセージが表示されるため。
2 !== 1
=> true
, 2 !== 8
=> true
:2 !== 1
メッセージが表示されるため。
3 !== 1
=> true
, 3 !== 8
=> true
:3 !== 1
メッセージが表示されるため。
4 !== 1
=> true
, 4 !== 8
=> true
:4 !== 1
メッセージが表示されるため。
5 !== 1
=> true
, 5 !== 8
=> true
:5 !== 1
メッセージが表示されるため。
6 !== 1
=> true
, 6 !== 8
=> true
:6 !== 1
メッセージが表示されるため。
7 !== 1
=> true
, 7 !== 8
=> true
:7 !== 1
メッセージが表示されるため。
8 !== 1
=> true
, 8 !== 8
=> false
:8 !== 1
メッセージが表示されるため。
おわかりのように、実際にブランチに入ることはありませんelse
(または、少なくともif
ブランチをスキップします)。
ここで、 AND演算子を使用して同じことを行いましょう。
1 !== 1
=> false
, 1 !== 8
=> true
: すべての条件が有効ではないため、メッセージは表示されません。true
2 !== 1
=> true
, 2 !== 8
=> true
: どちらも であるため、メッセージが表示されますtrue
。
3 !== 1
=> true
, 3 !== 8
=> true
: どちらも であるため、メッセージが表示されますtrue
。
4 !== 1
=> true
, 4 !== 8
=> true
: どちらも であるため、メッセージが表示されますtrue
。
5 !== 1
=> true
, 5 !== 8
=> true
: どちらも であるため、メッセージが表示されますtrue
。
6 !== 1
=> true
, 6 !== 8
=> true
: どちらも であるため、メッセージが表示されますtrue
。
7 !== 1
=> true
, 7 !== 8
=> true
: どちらも であるため、メッセージが表示されますtrue
。
8 !== 1
=> true
, 8 !== 8
=> false
: すべての条件が有効ではないため、メッセージは表示されません。true