내가 이렇게 내 코드에 중첩 된 삼항 연산자를 가지고 :PHP가 중첩 된 삼항 문제
$error = $fault_all ? "ALL" : $fault_twothirds ? "TWOTHIRDS" : $fault_onethird ? "ONETHIRD" : "UNKNOWN";
echo 'STATEERROR: ' . $error . ';';
그들은 내 우선 순위에 따라 나열하면 $ fault_all 및 $ fault_twothirds에 해당하는 경우, 내가 원하는 오른쪽 그래서 왼쪽 $ ALL에 할당 할 "ALL"; 모두가 사실이라면 똑같습니다. 모두 거짓이면 "알 수 없음"을 오류에 할당해야합니다.
그러나 그 중 하나라도 참이면 "ONETHIRD"만 반환되며 false이면 "UNKNOWN"이 반환됩니다. "ALL"및 "TWOTHIRDS"를 반환하려면 어떻게합니까?
중첩 된 삼항 연산자는 디버깅에 비우호적입니다. 사용하지 마십시오. if/else/etc로 전환하십시오. – Quentin
PHP는 다른 언어보다 중첩 된 삼항 연산자와 다르게 작동합니다. [여기를 참조하십시오] (http://17thdegree.com/archives/2008/01/09/php-and-nesting-ternary-operators/) –
우선 순위 결정을위한 paranthesis 사용 – hjpotter92