javascript - 三項算術式 3<8?(9<6?7:5):2>0?4:1 の値は Java と PHP で異なります。なぜですか?
三叔
三叔 2017-06-08 11:02:07
0
6
1045


Java と js では評価結果が 5 ですが、PHP では 4 です。
式が標準的な方法で書かれていないからでしょうか?それとも他の理由ですか? .net と C 言語を使用して他の人に試してもらいましたが、結果はすべて 5
[解決済み] 回答ありがとうございます。私の推測では、式があまり標準化されていないためです。いつも三進法は右から左のような気がするので、最後の括弧を省略してしまいました(以前よくそう書いていました)修正します。標準化のため、3<8?(9<6)とします。 ?7:5):(2>0 ?4:1)

三叔
三叔

全員に返信(6)
typecho

三項演算子の結合方向の問題:
javaは右から左へ。 30?4:1)3<8?(9<6?7:5):(2>0?4:1)
php 从做向右。等效于(3<8?(9<6?7:5):2)>0?4:1php の do から右に相当します。 (30?4:1 と同等です

そのため、曖昧なコードの生成を避けるために、記載すべき括弧は省略しないほうが良いです

いいねを押す +0
过去多啦不再A梦

PHPの三項演算の組み合わせ順序が逆です
http://www.jianshu.com/p/124f...

いいねを押す +0
代言

phpの優先度の解釈がjavaやjsなどの言語とは違うのでしょう(3 < 8 ? (9 < 6 ? 7 : 5) : 2 > 0) ? 4 : 1

と解釈されるかもしれません。
いいねを押す +0
某草草

PHP では次のようになります:

リーリー

それでは 4;

JavaScript では次のようになります:

リーリー

それでは5です。

演算子の優先順位がわからない場合は、括弧内を埋めてください。 ^_^

いいねを押す +0
刘奇

正解は二階~~~~~~

いいねを押す +0
学霸

この写真を入力すべきではないでしょうか?

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート