PHP3 というかなり古い環境に手を入れてたときの失敗談。最近の PHP ではどういう挙動になるかわかりませんが。
こんな感じのコードがあったわけです。
if($hogeFlag = "1") { print "true"; } else { print "false"; }
hogeFlag の値が何になろうが、絶対に true としか出力されない。あるぇー? としばらく悩んでしまった。パッと見で気付けた人はかなり注意力が高い。
これ何かっていうと、if の hogeFlag = "1" が代入文になってるんですよね。等号(=)がひとつしか無いのです。タイプミスか、どっかからコピペしたか……したときに比較演算子にし忘れたんでしょうかね。
この挙動って perl とか C とかからの名残なんでしょうねーきっと。