Java と js では評価結果が 5 ですが、PHP では 4 です。
式が標準的な方法で書かれていないからでしょうか?それとも他の理由ですか? .net と C 言語を使用して他の人に試してもらいましたが、結果はすべて 5
[解決済み] 回答ありがとうございます。私の推測では、式があまり標準化されていないためです。いつも三進法は右から左のような気がするので、最後の括弧を省略してしまいました(以前よくそう書いていました)修正します。標準化のため、3<8?(9<6)とします。 ?7:5):(2>0 ?4:1)
三項演算子の結合方向の問題:
javaは右から左へ。
30?4:1)
3<8?(9<6?7:5):(2>0?4:1)
php 从做向右。等效于
(3<8?(9<6?7:5):2)>0?4:1
php の do から右に相当します。(30?4:1
と同等ですそのため、曖昧なコードの生成を避けるために、記載すべき括弧は省略しないほうが良いです
PHPの三項演算の組み合わせ順序が逆です
http://www.jianshu.com/p/124f...
phpの優先度の解釈がjavaやjsなどの言語とは違うのでしょう
と解釈されるかもしれません。(3 < 8 ? (9 < 6 ? 7 : 5) : 2 > 0) ? 4 : 1
PHP では次のようになります:
リーリーそれでは 4;
JavaScript では次のようになります:
リーリーそれでは5です。
演算子の優先順位がわからない場合は、括弧内を埋めてください。 ^_^
正解は二階~~~~~~
この写真を入力すべきではないでしょうか?