とある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されているのが何なのか。謎だ