or1ko's diary

日々を書きます

PHPなんて知らないけれど2

オペランドの順番によって、変換される順番が変わるのですか。それは、驚きです。

ふと、false == 0 じゃなくて 0 == false だとどうなるのだろうかと考えてみた。参照先の適応表を見ながら考えてみる。

第一引数がnumberで第二引数がboolだから...、表の上から三番目が第一引数の条件を満たしているのだけども、第二引数が満たしていない。どれなんだろう。表の項目だと満たすものがない。多くの型ではと但書きがあるので、多くの型に含まれてないのかもしれない。(そもそもfalse == 0の場合の時に 0 を boolに変換するのは分かったのですが、その表にあるboolに変換して FALSE < TRUE と判断するという記述は何を意味しているのだろうか。FALSE > 1をFALSEと評価するということなのだろうか)

一生懸命調べて考えたすえに得た事実がロクでもない気配がするので、odzさんが推奨する通り、PHPを使う際には大人しく===を使う事にします。