まず三項演算式を見てみましょう:
コードをコピーします コードは次のとおりです:
$a=1;$b=2;$c=3;$d =4;
echo $a<$b?'xx':$a<$c?'yy':$a<$d?'zz':'oo'
他のものによると(C や Java など) 言語のルールを使用する場合、上記のコードの動作ロジックは次のとおりです。
コードをコピーします コードは次のとおりです:
$a<$b => > 'xx' ==> 終了
すると、最終結果は 'xx' になり、その後の操作は無視されます
驚くべきことに、PHP での上記のコードの最終結果は 'zz' です。おっと、これは不正ではないでしょうか...
古いルールなので、Google にアドバイスを求めたところ、php の三項演算は左結合であると教えられました... で、
2 つ追加しました。上記のコードに括弧を付けます:
コードをコピー コードは次のとおりです:
$a=1;$b=2;$c=3;$d=4;
echo (($a<$b?' xx':$a<$c)?'yy':$a<$d)?'zz':'oo'
;一目見て、これは php の動作ロジックです:
コードをコピーします。 コードは次のとおりです: $a<$b => 'xx' => ; 'yy' => true => 'zz' => ; End
これには、'xx' => true と 'xx' => true の 2 種類の変換処理が含まれます。このプロセスが面倒であれば、確かに理解するのは難しいです...
最後に、もう一度上記のコードに戻り、C: のような正しい組み合わせに変更します
コードをコピーします
コードは次のとおりです:
$a=1; $b=2;$c=3;$d=4; echo $a<$b?'xx':($a<$c?'yy ':($a<$d?'zz':' oo')); // PHP では括弧を省略することはできません
;
http://www.bkjia.com/PHPjc/324777.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/324777.html技術記事まず、三項演算式を見てみましょう: 次のようにコードをコピーします: ?php $a=1;$b=2;$c=3;$d=4; echo $a$b?'xx':$a$ c ?'yy':$a$d?'zz':'oo' ? 通常、上記の他の言語 (C や Java など) の規則に従います。