public static function toString(array $array_, $mode_ = 3, $maxDepth_ = 99, $separatorKeyValue_ = ': ', $separatorValues_ = ', ', $arrayDelimiterL_ = '[', $arrayDelimiterR_ = ']', &$string_ = '', &$level_ = 0)
 {
     $string_ .= $arrayDelimiterL_;
     $values = [];
     if ($maxDepth_ > ++$level_ && 0 < count($array_)) {
         foreach ($array_ as $key => $value) {
             if (is_array($value)) {
                 if (Bitmask::hasBitForBitmask($mode_, self::RECURSIVE)) {
                     $values[] = $key . $separatorKeyValue_ . self::toString($value, $mode_, $maxDepth_, $separatorKeyValue_, $separatorValues_, $arrayDelimiterL_, $arrayDelimiterR_, $strings_, $level_);
                 } else {
                     $values[] = $key . $separatorKeyValue_ . self::TYPE;
                 }
             } else {
                 if (is_null($value)) {
                     $values[] = $key . $separatorKeyValue_ . 'null';
                 } else {
                     if (is_bool($value)) {
                         $values[] = $key . $separatorKeyValue_ . Boolean::valueAsString($value);
                     } else {
                         $values[] = $key . $separatorKeyValue_ . (string) $value;
                     }
                 }
             }
         }
     }
     $string_ .= implode($separatorValues_, $values);
     $string_ .= $arrayDelimiterR_;
     $level_--;
     return $string_;
 }