2016-11-07 9 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입니다.