5

わかりましたので、PHP の奇妙な動作に気付きました。なぜこれが起こるのか知りたいです。したがって、次のコードを実行します。

 var_dump( true and false ? 'one' : 'two' );

出力

boolean true

あなたが期待する「2」の代わりに...問題は「and」を使用しているようです。

ランニング:

var_dump( true && false ? 'one' : 'two' );

出力

string 'two' (length=3)

予想通り。「&&」の代わりに「and」を使用すると、この奇妙な動作が発生するのはなぜですか? それらは同じであるべきではありませんか?

4

2 に答える 2

5

これは、 の優先順位が よりも?:高く、 よりも低いためです。and&&

于 2012-04-22T22:34:37.723 に答える
3

andより優先度が低いからです。&&?:

于 2012-04-22T22:34:39.150 に答える