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_; }