>백엔드 개발 >PHP 튜토리얼 >PHP 연산자 우선 순위

PHP 연산자 우선 순위

伊谢尔伦
伊谢尔伦원래의
2016-11-24 13:39:301249검색

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

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

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

연산자 우선순위

결합 방향                                                        >없음 복제 새 복제 및 새 왼쪽 [ array()

오른쪽 ++ -- ~ (int) (float) (string) (array) (object) (bool) @ 유형 및 증가/감소

유형 인스턴스 없음

논리 연산자

왼쪽* / % 산술 연산자

왼쪽+ -. 산술 연산 및 문자열 연산자

왼쪽

없음 == != === !== 비교 연산자

왼쪽 및 비트 연산자 및 참조

왼쪽 ^ 비트 연산자

왼쪽 | 비트 연산자

왼쪽 && 논리 연산자

왼쪽 || 논리 연산자

왼쪽 ? : 삼항 연산자

오른쪽 = += -= *= /= .= %= &= |= ^= >= => 할당 연산자

왼쪽 및 논리 연산자

왼쪽 xor 논리 연산자

왼쪽 또는 논리 연산자

Left ,

는 동일한 우선순위를 갖는 연산자의 경우 왼쪽 연관 방향은 평가가 왼쪽에서 오른쪽으로 수행됨을 의미하고 오른쪽 연관 방향은 반대를 의미합니다. . 연관 방향이 없는 동일한 우선순위의 연산자는 자체적으로 결합될 수 없습니다. 예를 들어, PHP 1 1은 잘못된 구문이지만 1 예제 #1 방향 결합

괄호를 사용하면 꼭 필요하지 않은 경우에도 코드의 가독성을 높일 수 있는 경우가 많습니다.

참고:

=는 대부분의 다른 연산자보다 우선순위가 낮지만 PHP는 여전히 다음과 같은 표현식을 허용합니다. if (!$a = foo()), 여기 예에서 return foo()의 값은 $a에 할당됩니다.

<?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
?>
예:

명령줄에서 다음 명령을 실행하면 인쇄된 결과가 false입니다.

PHP 연산자 우선 순위

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