2016-11-07 2 views
0

PHPでチェック配列の配列を設定するには、DBからコード化された小数を使用します。例えば、12月5日(0000バイナリ0101セットcheckedからcheckbox 1及び3
Iチェックボックス1は、この例のように三項演算子を使用:。PHP三項演算子の条件部分にかっこが必要な理由

(5 & 1 == 1 ? 'checked' : '') 

それはtrueなければならないものの結果は、false

私は条件部(5 & 1) == 1に追加括弧を使用する場合にのみ、私は正しい結果を得るのです。最後の例では、次のようになります。。

((5 & 1) == 1 ? 'checked' : '') 

誰かがこのようにかっこを使用する理由を知っていますか?

+5

[演算子の優先順位](http://php.net/manual/en/language.operators.precedence.php)を参照してください –

+0

これはどういう意味ですか?最初に '1 == 1'をチェックするのか、' 5&1'を先にチェックするのですか? – scrappedcola

+0

@ John Conde - Okので、˚comparision˚は˚bitwise˚演算子よりも優先順位が高くなります。あなたが回答を投稿したら私はそれをチェックするでしょう。 – Ben

答えて

1

ビット単位のAND演算子&は、の優先順位がで、==より小さい。また、の三項条件付き演算子は、使用している演算子の中で最も低い優先順位を持ちます。

したがって、は、(5 & (1 == 1)) ? 'checked' : ''と評価されます。

あなたの配置カッコが約5 & 1であることは正しいことです。