Java と js では評価結(jié)果が 5 ですが、PHP では 4 です。
式が標(biāo)準(zhǔn)的な方法で書かれていないからでしょうか?それとも他の理由ですか? .net と C 言語を使用して他の人に試してもらいましたが、結(jié)果はすべて 5
[解決済み] 回答ありがとうございます。私の推測では、式があまり標(biāo)準(zhǔn)化されていないためです。いつも三進法は右から左のような気がするので、最後の括弧を省略してしまいました(以前よくそう書いていました)修正します。標(biāo)準(zhǔn)化のため、3<8?(9<6)とします。 ?7:5):(2>0 ?4:1)
三項演算子の結(jié)合方向の問題:
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 から右に相當(dāng)します。 (30?4:1
と同等です
そのため、曖昧なコードの生成を避けるために、記載すべき括弧は省略しないほうが良いです
phpの優(yōu)先度の解釈がjavaやjsなどの言語とは違うのでしょう(3 < 8 ? (9 < 6 ? 7 : 5) : 2 > 0) ? 4 : 1
PHP では次のようになります:
リーリーそれでは 4;
JavaScript では次のようになります:
リーリーそれでは5です。
演算子の優(yōu)先順位がわからない場合は、括弧內(nèi)を埋めてください。 ^_^