삼항 연산자 문의: 연결 수수께끼
이 프로그래밍 난제에서 호기심 많은 코더는 삼항 연산자와 문자열 연결을 활용할 때 예상치 못한 결과에 직면합니다. . 원본 코드는 다음과 같습니다.
$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 중국어 웹사이트의 기타 관련 기사를 참조하세요!