>  기사  >  백엔드 개발  >  삼항 연산자 퍼즐: 문자열 연결이 예상대로 작동하지 않는 이유는 무엇입니까?

삼항 연산자 퍼즐: 문자열 연결이 예상대로 작동하지 않는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-24 02:19:02983검색

Ternary Operator Puzzle: Why Isn't String Concatenation Working as Expected?

삼항 연산자 문의: 연결 수수께끼

이 프로그래밍 난제에서 호기심 많은 코더는 삼항 연산자와 문자열 연결을 활용할 때 예상치 못한 결과에 직면합니다. . 원본 코드는 다음과 같습니다.

$description = 'Paper: ' . ($paperType == 'bond') ? 'Bond' : 'Other';

$paperType이 "bond"와 같으면 "Paper: Bond" 문자열을, 그렇지 않으면 "Paper: Other" 문자열을 $description 변수에 보관하려는 의도였습니다. 그러나 얻은 결과는 단지 "결합" 또는 "기타"뿐이었습니다.

이 문제를 해결하는 열쇠는 삼항식의 연산 순서에 있습니다. 삼항 연산자는 조건부 할당을 위한 편리한 단축키이지만 문자열 연결과는 다른 우선 순위 수준에서 작동합니다. 결과적으로 실제로 연결 연산은 삼항식 평가 이전에 발생합니다.

이를 바로잡기 위해서는 삼항식 평가 이후에 연결이 수행되도록 코드를 수정해야 합니다. 수정된 코드:

$description = 'Paper: ' . ($paperType == 'bond' ? 'Bond' : 'Other');

삼항 표현식을 괄호로 묶어서 코드는 삼항 표현식의 결과에 대해 문자열 연결이 수행되어 "Paper: Bond" 또는 "Paper: Bond" 또는 $paperType 값을 기준으로 한 "Paper: Other"입니다.

위 내용은 삼항 연산자 퍼즐: 문자열 연결이 예상대로 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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