mb_strlen() 関数の落とし穴

会社の同僚と mb_strlen の話をしていて以下のページを見つけましたが、

<?php
$str = '日本語にほんご';
var_dump(mb_strlen($str, 'SJIS'));
?>

というように、mb_strlen()関数の第2引数に$strの文字エンコードを指定すると、
 PHPの内部エンコーディング設定に関わらず正しく動作するようになります。
環境が変わったら突然おかしくなったということを防ぐためにも、
第2引数で文字エンコードを指定するようにすることをお勧めします。

うーんw

そもそも、環境の方を見直すべきじゃないかと思うのは自分だけだろうか…
場所によって文字コードがバラバラだったらアーキテクチャを見直すべきだし。