= 0) { $length = self::safeStrlen($str) - $start; } else { $length = -$start; } } // $length calculation above might result in a 0-length string if ($length === 0) { return ''; } return \mb_substr($str, $start, $length, '8bit'); } if ($length === 0) { return ''; } // Unlike mb_substr(), substr() doesn't accept NULL for length if ($length !== null) { return \substr($str, $start, $length); } else { return \substr($str, $start); } } }