一个会生成各种模式随机字符串的函数

一个能生成各种模式随机字符串的函数
/**
 *随机字符串生成函数
 * @param int $length 生成长度
 * @param int $mode 字符模式
 * @return string 
 */
function generate($length=5, $mode) {
    $str = $gen_str = '';
    switch ($mode) {
        case 1:
            $str = '0123456789';
            break;
        case 2:
            $str = 'abcdefghijklmnopqrstuvwxyz';
            break;
        case 3:
            $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
            break;
        case 4:
            $str = 'abcdefghijklmnopqrstuvwxyz0123456789';
            break;
        case 5:
            $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
            break;
        case 6:
            $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
            break;
        default:
            $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
            break;
    }
    for ($i = 0; $i < $length; $i++) {
        $num = mt_rand(0, strlen($str) - 1);
        $gen_str .= $str[$num];
    }
    return $gen_str;
}