strposで0とFALSEの場合の判定

なぜこのような意味不明な仕様にしたのか理解に苦しむ。
ある文字が文字列の中に含まれているかどうかを調べるのにstrposを使う。文字があればその位置を数字で、なければFalseを返す。
しかし問題は文字が登場する位置が0、つまり先頭の場合だ。その場合、

$pos = strpos($str, "X");
if( !$pos ){
  print " pos is false";
}
else{
  print " pos is " . $pos;
}

普通から、
pos is 0
と印刷されてしかるべきだが、この場合は、
pos is false
と印刷される。それは、PHPが、0とFalse、””(空文字列)などを同じに扱うからだ。

ref: http://www.programming-magic.com/20071124195053/trackback/

したがってその場合は厳密な比較である、===を使用して、

$pos = strpos($str, "X");
if( $pos === false ){
  print " pos is false";
}
else{
  print " pos is " . $pos;
}

としてやらねばならない。