> 백엔드 개발 > PHP 튜토리얼 > 정수를 추가하고 연결할 때 PHP가 \'2\'를 에코하는 이유는 무엇입니까?

정수를 추가하고 연결할 때 PHP가 \'2\'를 에코하는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-29 23:45:29
원래의
403명이 탐색했습니다.

Why Does PHP Echo

PHP의 흥미로운 동작: 합과 연결의 난제 풀기

PHP 프로그래밍 영역에서 추가 시 당황스러운 동작에 관한 최근 논의가 있습니다. 값을 연결하는 것은 호기심을 불러일으켰습니다.

다음 코드 조각에서 볼 수 있듯이 이 이상 현상을 자세히 살펴보겠습니다.

<code class="php">$a = 1;
$b = 2;

echo "sum: " .  $a + $b;
echo "sum: " . ($a + $b);</code>
로그인 후 복사

이 코드를 실행하면 두 에코 모두 " 합계: 3". 그러나 놀랍게도 첫 번째 에코는 "2"를 표시하여 개발자를 당황하게 만듭니다. 왜 이런 일이 발생합니까?

핵심은 PHP의 연산자 우선 순위와 연관성에 있습니다. 더하기( ) 및 연결(.) 연산자는 모두 동일한 우선순위 수준을 공유하므로 왼쪽 연관이 됩니다. 이러한 연산자가 평가되는 순서가 중요합니다.

  1. 첫 번째 에코에서는 연결이 먼저 수행되어 "sum: 1"이 생성됩니다.
  2. 그런 다음 이 문자열이 변환됩니다. 숫자 컨텍스트로 인해 정수로 변환하여 더하기를 0 2로 효과적으로 변환하여 "2"를 생성합니다.

그러나 두 번째 에코에서 괄호는 연결 전에 더하기가 발생하도록 보장합니다. 원하는 결과인 "sum: 3"을 얻으세요.

이 흥미로운 동작은 비록 명시적으로 문서화되지는 않았지만 PHP의 연산자 우선 순위와 연관성의 미묘한 차이를 실험하고 이해함으로써 발견할 수 있습니다.

위 내용은 정수를 추가하고 연결할 때 PHP가 \'2\'를 에코하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿