2016-11-07 75 views
0

要使用PHP設置複選框數組我使用DB中的編碼小數。例如12月5日(二進制0000 0101套checkbox 1和3至checked
我使用三元運算作爲在這個例子中爲複選框。1:爲什麼在PHP三元運算符的條件部分需要括號

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

結果是false,雖然它應該是true

只有當我使用額外的括號中的條件部分(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 - 好的,所以Âcomparision˚的優先級高於˚bitwise˚的運算符,謝謝。如果您發佈答案,我會檢查它。 – Ben

回答

1

按位與運算符&的優先級爲優先於而不是==。並且三元條件運算符具有您正在使用的運算符的最低優先級。因此5 & 1 == 1 ? 'checked' : ''被評估爲(5 & (1 == 1)) ? 'checked' : ''

將括號放在5 & 1左右是正確的做法。