2013年3月17日日曜日

おかしな挙動?

最近になってPHPでどうしても理解できない挙動をする式を見つけました。
以下、そのサンプルコードと実行結果です。

サンプルコード 実行結果
1211
パターン1とパターン3、パターン2とパターン4が同じ結果になると思ったのですが、そうはなりませんでした。
パターン4の条件式ですが、普通に解釈すると右から解釈するので
$aに0が代入され、その$aをbooleanにキャストするのでFALSEになる筈なのですが…?
原因はわかりませんが、(bool)の型キャスト部分を消すと実行結果は1212と予想通りになります。
ともあれ、三項演算子と型キャストを同時に使うのは避けたほうがよさそうです。

0 件のコメント:

コメントを投稿