文字列を比較しても一致しない場合

Pocket

とあるAPIで得た値(object中のvalueの一つ)$aが、$bと一致するかを比較したい。見た目には、$aも$bも一緒。

これらstring $aと$bが一致するかを確認する際に、

if( $a == $b ){
    echo 'true';
}

で行けるはずなのにダメ、strcmp()でもダメ。どうもうまく行かないことがあったので、メモ。

  • var_dump()すると、byte数が一致しない。漢字5文字なのに、$aは35byte..
  • $a, $bをそれぞれbin2hex()すると、確かに違うことがわかる。bin2hex($a)の値に文字列がappendされている
  • appendされた文字列を hex2bin() しても、何も表示されない

bin2hexした値を比較し、appendされていた分を削除したら、一致することを確認

某APIの仕様なのか?違う値についても、appendされている部分は一緒。

なぜappendされるのか、appendされているのが何なのか。謎だ