연산자 우선 순위는 두 표현식이 얼마나 "단단하게" 바인딩되는지 지정합니다. 예를 들어, 1 + 5 * 3 표현식은 곱하기 기호("*")가 더하기 기호("+")보다 우선순위가 높기 때문에 18이 아닌 16으로 평가됩니다. 필요한 경우 괄호를 사용하여 우선순위를 강제로 변경할 수 있습니다. 예를 들어 (1 + 5) * 3의 값은 18입니다.
연산자의 우선순위가 동일한 경우 연관 방향에 따라 평가가 오른쪽에서 왼쪽으로 이루어져야 하는지 아니면 왼쪽에서 오른쪽으로 이루어져야 하는지가 결정됩니다. 아래 예를 참조하세요.
다음 표에는 연산자의 우선순위가 높은 것부터 낮은 것 순으로 나열되어 있습니다. 같은 줄에 있는 연산자는 우선순위가 동일하며, 결합되는 방향에 따라 평가 순서가 결정됩니다.
연산자 우선순위는 다음 표와 같습니다
결합방향 | 연산자 | 추가정보 |
---|---|---|
없음 | 새 클론 | 클론 및 새 |
left | [ | array() |
right | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | 유형 및 증분 /decreasing |
none | instanceof | type |
right | ! | 논리 연산자 |
left | * / % | 산술 연산자 |
왼쪽 | + - . | 산술 연산자 및 문자열 연산자 |
left | 5a6869d7319793ee1f7e3b5b7ccae4db | 비교 연산자 |
left | & | bit 연산자 및 참조 |
left | ^ | 비트 연산자 |
left | | | 비트 연산자 |
left | && | 논리 연산자 |
left | || | 논리 연산자 |
left | ? : | 삼항 연산자 |
오른쪽 | = += -= *= /= .= %= &= |= ^= 639513f5eb9d8dcbce09d6b5cb44cf73>= => | 할당 연산자 |
Left | 및 논리 연산자 | |
left | xor | 논리 연산자 |
left | 또는 | 논리 연산자 |
left | , | more 모든 곳에서 사용됨 |
우선 순위가 동일한 연산자의 경우 왼쪽 연관 방향은 평가가 왼쪽에서 오른쪽으로 이루어짐을 의미하고 오른쪽 연관 방향은 그 반대를 의미합니다. 연관 방향이 없는 동일한 우선순위의 연산자는 자체적으로 결합될 수 없습니다. 예를 들어, PHP 1 d66d2a93259ca9392db29f00ed43fda0 1은 잘못된 구문이지만 1 <= 1 == 1은 그렇지 않습니다. T_IS_EQUAL 연산자의 우선순위가 T_IS_SMALLER_OR_EQUAL 연산자의 우선순위보다 낮기 때문입니다. | 예제 #1 방향과 함께 | <?php $a = 3 * 3 % 5 ; // (3 * 3) % 5 = 4 $a = true ? 0 : true ? 1 : 2 ; // (true ? 0 : true) ? 1 : 2 = 2 $a = 1 ; $b = 2 ; $a = $b += 3 ; // $a = ($b += 3) -> $a = 5, $b = 5 // mixing ++ and + produces undefined behavior $a = 1 ; echo ++ $a + $a ++; // may print 4 or 5 ?> | 괄호를 사용하면 꼭 필요하지 않은 경우에도 코드의 가독성이 향상되는 경우가 많습니다.
=는 대부분의 다른 연산자보다 우선 순위가 낮지만 PHP는 여전히 다음과 같은 표현식을 허용합니다: if (!$a = foo()), 이 경우 foo() 반환 값은 $에 할당됩니다. .
위 내용은 PHP에서 연산자 우선 순위는 어떻게 보입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!