/**
  * 递增字符
  * @param string  $FinallyStr 输入字符
  * @param options $Type 类型 [默认全部 \ alpha 纯字母 / lower 小字母 / upper 大字母]
  * @param boolean $FirstRandomCode 首个随机码
  */
 public static function NewStr($FinallyStr, $Type = 'all', $FirstRandomCode = false)
 {
     static $instance = null;
     $Number = false;
     $lower = false;
     $upper = false;
     if (is_null($instance)) {
         $instance = new self();
     }
     switch ($Type) {
         case 'alpha':
             if (!ctype_alpha($FinallyStr)) {
                 return false;
             }
             $lower = true;
             $upper = true;
             break;
         case 'lower':
             if (!ctype_lower($FinallyStr)) {
                 return false;
             }
             $lower = true;
             break;
         case 'upper':
             if (!ctype_upper($FinallyStr)) {
                 return false;
             }
             $upper = true;
             break;
         default:
             if (!ctype_alnum($FinallyStr)) {
                 return false;
             } else {
                 if (ctype_digit($FinallyStr)) {
                     $strlen = strlen('a' . $FinallyStr);
                     --$strlen;
                     $digit = intval($FinallyStr);
                     ++$digit;
                     if ($strlen == strlen($digit)) {
                         return $digit;
                     }
                     return str_pad($digit, $strlen, '0', STR_PAD_LEFT);
                 }
             }
             $Number = true;
             $lower = true;
             $upper = true;
             break;
     }
     if (!($StrLength = strlen($FinallyStr))) {
         return false;
     }
     $instance->Table = $instance->CapacityTable($Number, $lower, $upper);
     $instance->TableCount = count($instance->Table) - 1;
     $i = 0;
     $NewArr = array();
     $AnStr = str_split($FinallyStr);
     while (true) {
         ++$i;
         $NewAnStr = $instance->Calculation(array_pop($AnStr));
         $NewArr[] = $NewAnStr;
         if ($NewAnStr === false && $NewAnStr != $instance->Table[0] || $i < $StrLength) {
             break;
         }
     }
     $ObverseStr = implode('', $AnStr) . implode('', array_reverse($NewArr));
     if ($FirstRandomCode != false) {
         $ObverseStr = $instance->ReplaceFirstCode($ObverseStr);
     }
     return $StrLength == strlen($ObverseStr) ? $ObverseStr : false;
 }