>백엔드 개발 >PHP 튜토리얼 >PHP에서 연산자 우선 순위는 어떻게 보입니까?

PHP에서 연산자 우선 순위는 어떻게 보입니까?

怪我咯
怪我咯원래의
2017-06-20 10:59:351954검색

연산자 우선 순위는 두 표현식이 얼마나 "단단하게" 바인딩되는지 지정합니다. 예를 들어, 1 + 5 * 3 표현식은 곱하기 기호("*")가 더하기 기호("+")보다 우선순위가 높기 때문에 18이 아닌 16으로 평가됩니다. 필요한 경우 괄호를 사용하여 우선순위를 강제로 변경할 수 있습니다. 예를 들어 (1 + 5) * 3의 값은 18입니다.

연산자의 우선순위가 동일한 경우 연관 방향에 따라 평가가 오른쪽에서 왼쪽으로 이루어져야 하는지 아니면 왼쪽에서 오른쪽으로 이루어져야 하는지가 결정됩니다. 아래 예를 참조하세요.

다음 표에는 연산자의 우선순위가 높은 것부터 낮은 것 순으로 나열되어 있습니다. 같은 줄에 있는 연산자는 우선순위가 동일하며, 결합되는 방향에 따라 평가 순서가 결정됩니다.

연산자 우선순위는 다음 표와 같습니다

할당 연산자 우선 순위가 동일한 연산자의 경우 왼쪽 연관 방향은 평가가 왼쪽에서 오른쪽으로 이루어짐을 의미하고 오른쪽 연관 방향은 그 반대를 의미합니다. 연관 방향이 없는 동일한 우선순위의 연산자는 자체적으로 결합될 수 없습니다. 예를 들어, PHP 1 d66d2a93259ca9392db29f00ed43fda0 1은 잘못된 구문이지만 1 <= 1 == 1은 그렇지 않습니다. T_IS_EQUAL 연산자의 우선순위가 T_IS_SMALLER_OR_EQUAL 연산자의 우선순위보다 낮기 때문입니다. 예제 #1 방향과 함께 괄호를 사용하면 꼭 필요하지 않은 경우에도 코드의 가독성이 향상되는 경우가 많습니다.
연산자 우선순위
결합방향 연산자 추가정보
없음 새 클론 클론 및 새
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
$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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.