> 백엔드 개발 > PHP 튜토리얼 > 삼항 연산자 문자열 연결에서 예기치 않은 결과가 나타나는 이유는 무엇입니까?

삼항 연산자 문자열 연결에서 예기치 않은 결과가 나타나는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-24 02:19:29
원래의
687명이 탐색했습니다.

Why Unexpected Result in Ternary Operator String Concatenation?

삼항 연산자 문자열 연결 예기치 않은 결과

최근 코딩 시나리오에서 특정 코드 동작으로 인해 개발자는 당황했습니다. 문제의 코드는 삼항 조건 연산자를 활용하여 주어진 조건에 따라 문자열 값을 결정합니다. 그러나 결과는 예상과 다릅니다.

코드 및 관찰

심사 중인 코드는 다음과 같습니다.

$description = 'Paper: ' . ($paperType == 'bond') ? 'Bond' : 'Other';
로그인 후 복사

의도 이 코드 뒤에는 $paperType이 'bond'인 경우 $description 변수에 'Paper: Bond'를 할당하고 $paperType이 'bond'가 아닌 경우 'Paper: Other'를 할당하는 것입니다.

그러나 코드에서 개발자는 $description에 예상되는 접두사 'Paper:' 없이 'Bond' 또는 'Other' 값이 직접 할당되는 것을 확인했습니다. 이 이상해 보이는 결과는 설명을 찾기 위한 검색을 촉발시켰습니다.

The Fix

자세히 분석해 보면 삼항식 표현 주위에 괄호가 생략된 것이 분명해졌습니다. 이 생략으로 인해 작업 순서가 변경되어 예상치 못한 동작이 발생합니다.

올바른 코드는 다음과 같아야 합니다.

$description = 'Paper: ' . ($paperType == 'bond' ? 'Bond' : 'Other');
로그인 후 복사

괄호가 있으면 'Paper:' 문자열이 올바르게 연결됩니다. 삼항 표현식의 결과로 원하는 출력이 달성되도록 보장합니다.

위 내용은 삼항 연산자 문자열 연결에서 예기치 않은 결과가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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