삼항 연산자 문자열 연결 예기치 않은 결과
최근 코딩 시나리오에서 특정 코드 동작으로 인해 개발자는 당황했습니다. 문제의 코드는 삼항 조건 연산자를 활용하여 주어진 조건에 따라 문자열 값을 결정합니다. 그러나 결과는 예상과 다릅니다.
코드 및 관찰
심사 중인 코드는 다음과 같습니다.
$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 중국어 웹사이트의 기타 관련 기사를 참조하세요!