DBのカラムがvarchar(20)とかのとき、UTF-8でstrlen($str)を使用したところ、全角10文字はstring(30)になってしまう。
フォームには全角も半角も入力が出来るため、
$length = 20;
if(strlen($str)>$length)? return true:return false;
とやってしまうとうまく動作しなかった。
そこで、
$encstr = mb_convert_encoding($str,'SJIS','UTF-8');
if(strlen($encstr)>$length)? return true:return false;
ととしたらうまくいった。