mb_strlenでハマった
「判断」をmb_strlenすると6と出ていました。
PHP TIPS - 21. mb_strlen()関数の落とし穴:ITpro
上記の記事を読むと、php内部のエンコードと文字列のエンコードと異なってる場合に起きるらしいです。
今回は「判断」の文字列はutf8、php.iniの
mbstring.internal_encodingはEUCJPだったのでこんなことになったようです。
ついでに言うとphp.iniも作ってませんでした。
なのでmacの
/etc/php.ini.defaultからコピーしてきて
/etc/php.iniを作成し、internal_encodingと、defaultcharasetをコメントアウトを外して保存し、ちゃんと2と出ることを確認しました。