1 == '1a' は true です

自戒の念を込めて書く。比較の時は、トリプルイコール(===)使えって散々言われてきたけど面倒くさくていつも==で済ませていた。今日 1 == '1a' がtrueになってヒヤッとした。分かってるつもりで分かっていなかった。適当な性格がこういう所でコーディングにも現れる。今後は一つ一つ改善していってプログラムの品質を上げていこうと思う。

<?php

1 == '1a' => true
'1' == '1a' => false // 文字列同士なら == でも問題ない
'1' == '2' => false
1 == 2 => false
2 == true => true
'1a' == true => true
1 === '1a' => false
1 === '1' => false
1 === 1 => true
'1' === '1' => true