>  기사  >  백엔드 개발  >  PHP 연산자 우선순위를 설명해 주세요.

PHP 연산자 우선순위를 설명해 주세요.

WBOY
WBOY원래의
2016-08-04 09:20:23951검색

PHP 연산자 우선순위를 읽어보니 매뉴얼의 예제는 이해가 가는데 이건 좀 이해하기 어렵네요

<code>
echo "1+5". 1+5;// 6

echo "1+5". 5+1;// 2

echo "5+1". 5+1;// 6

echo "5+1". 1+5;// 10</code>

답글 내용:

PHP 연산자 우선순위를 읽어보니 매뉴얼의 예제는 이해가 가는데 이건 좀 이해하기 어렵네요

<code>
echo "1+5". 1+5;// 6

echo "1+5". 5+1;// 2

echo "5+1". 5+1;// 6

echo "5+1". 1+5;// 10</code>

php.net의 지침을 참조하세요.

내 번역(나쁨)

점 연산자는 , -과 우선순위가 같으며, 혼합하여 사용하면 예상치 못한 결과가 발생할 수 있습니다.

<code class="php">$var = 3;

echo "Result: " . $var + 3;
</code>

위 결과는 예상한 결과가 아닌 3이 출력됩니다6

점 연산자는 , -과 우선순위가 같기 때문에 위의 모든 연산 "Result: " . $var 3;은 먼저 문자열 Result과 변수 $var의 결과를 계산하여

을 얻습니다.

Resuklt3

Resuklt3과 숫자 3의 결과를 계산합니다. 비어 있지 않은 숫자가 아닌 문자열과 정수는 계산 중에 0으로 변환되므로 결과는 3

입니다.

echo "5 1". 1 5;과 동일합니다. 먼저 "5 1". 1을 계산하여 문자열 5 11을 얻은 다음(이것은 문자열이라는 점에 유의하세요) 숫자 5를 더하고 문자열 5 11을 변환합니다. 숫자 = 5에 5를 더하면 결과는 10

입니다.

답은 매우 간단합니다. 네 가지 예는 문자열 연결 연산자 .의 우선순위가 연산자의 우선순위보다 높습니다.
먼저 PHP에서는 덧셈에 사용되는 변수가 숫자형이 아닌 경우 먼저 숫자형으로 변환하고 문자열 "1 15"를 숫자 1로 변환합니다.
이 항목의 결과는 명백합니다.

<code>"1+5" . 1 + 5 = "1+15" + 5 = 1 + 5 = 6
"1+5" . 5 + 1 = "1+51" + 1 = 1 + 1 = 2
"5+1" . 5 + 1 = "5+15" + 1 = 5 + 1 = 6
"5+1" . 1 + 5 = "5+11" + 5 = 5 + 5 = 10</code>

PHP 연산자 우선순위를 설명해 주세요.

추가:
문자열 연결자와 산술 연산자는 동일한 우선순위를 가지며 동일한 수준에 있습니다. 바인딩 방향은 왼쪽입니다. 즉, 왼쪽에서 오른쪽으로 계산됩니다. 링크 참조
따라서 문자열 연결을 먼저 수행한 후 추가 작업을 수행합니다.

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