Java와 js 모두 평가 결과가 5인데, PHP에서는 4입니다.
제 공식이 표준화된 방식으로 작성되지 않았기 때문인가요? 아니면 다른 이유 때문인가요? 다른 사람들에게 .net과 c 언어를 사용하여 시도해 보라고 요청했는데 두 결과 모두 5입니다. [해결됨] 답변 감사합니다. 공식이 표준화된 방식으로 작성되지 않은 것 같습니다. 삼항은 항상 오른쪽에서 왼쪽으로 생각하기 때문에 마지막 괄호를 생략했습니다(이전에도 이런 식으로 자주 썼었습니다). 표준화를 위해 3<8?(9<6? 7:5):(2>0?4:1 )
typecho2017-06-08 11:04:07
삼항 연산자의 조합 방향 문제:
java는 오른쪽에서 왼쪽으로. do에서 오른쪽으로 3<8?(9<6?7:5):(2>0?4:1)
3<8?(9<6?7:5):(2>0?4:1)
php 从做向右。等效于(3<8?(9<6?7:5):2)>0?4:1
php와 동일합니다. (3<8?(9<6?7:5):2)>0?4:1
따라서 모호한 코드 생성을 피하기 위해서는 반드시 작성해야 할 괄호를 생략하지 않는 것이 좋습니다
代言2017-06-08 11:04:07
PHP의 우선순위 해석은 Java, JS 및 기타 언어의 우선순위 해석과 다릅니다. (3 < 8 ? (9 < 6 ? 7 : 5) : 2 > 0) ? 4 : 1
某草草2017-06-08 11:04:07
PHP에서는 다음과 같습니다:
으아아아그러니까 4;
JavaScript에서는 다음과 같습니다.
으아아아그래서 5입니다.
연산자의 우선순위를 모르신다면 괄호만 완성하시면 됩니다. ^_^