연산자 우선 순위는 두 표현식이 얼마나 "단단하게" 바인딩되는지 지정합니다. 예를 들어, 1 + 5 * 3 표현식은 곱하기 기호("*")가 더하기 기호("+")보다 우선순위가 높기 때문에 18이 아닌 16으로 평가됩니다. 필요한 경우 우선순위를 강제로 변경하기 위해 괄호를 사용할 수 있습니다. 예를 들어 (1 + 5) * 3의 값은 18입니다.
연산자 우선 순위에 따라 작업 수준이 높은 것이 먼저 계산됩니다. 우선 순위가 동일한 경우 연산자의 조합 방향에 따라 작업 방법이 결정됩니다. 괄호를 사용하여 우선순위 변경을 강제할 수 있습니다.
연산자 우선 순위는 높은 것부터 낮은 것 순입니다.
결합 방향 | operator | 추가 정보 |
---|---|---|
None | clone new | clone 및 new |
왼쪽 | [ | array() |
right | ++ — ~ (int) (float) (string) (array) (object) (bool) @ | type 및 증가/감소 |
없음 | instanceof | type |
right | ! | 논리 연산자 |
left | */% | 산술 연산자 |
left | + – . | 산술 연산자 및 문자열 연산자 |
left | 4e9674e4037f009f8f3f0cd5e931ebcf> | 비트 연산자 |
none | == != === !== a8093152e673feb7aba1828c43532094 | 비교 연산 표기법 |
left | & | 비트 연산자 및 참조 |
left | ^ | 비트 연산자 |
left | | | 비트 연산자 |
Left | && | |
왼쪽 | || | 논리 연산자 |
왼쪽 | ?: | Sanyuan 연산자 |
오른쪽 | = += -= *= /= .= %= &= |= ^= d167b814f5a94c9fc5595b94e37fb76b>= => | 대입 연산자 |
left | and | 논리 연산자 |
left | xor | 논리 연산자 |
left | 또는 | 논리 연산자 |
left | , | 는 여러 곳에서 사용됩니다 |
우선 순위가 같은 연산자의 경우 왼쪽 연관 방향은 왼쪽에서 오른쪽으로 평가되고 오른쪽 바인딩 방향에 대해서는 그 반대로 평가됩니다. 연관 방향이 없는 동일한 우선순위의 연산자는 자체적으로 결합될 수 없습니다.
예: 방향 결합
<?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()의 반환 값은 $a에 할당됩니다.
위 내용은 PHP에서 연산자의 우선순위는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!