public static function length($val)
{
if (is_array($val) || $val instanceof \Countable) {
return count($val);
} elseif ($val instanceof \Traversable) {
return iterator_count($val);
} else {
return strlen(utf8_decode($val));
// fastest way
}
}