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