/** * Writes array item to file * * @param int $tabs * @param string $key * @param mixed $value * @return string */ public static function format_array_entry_as_settings_file_entry($tabs, $key, $value) { $item = str_repeat("\t", $tabs); if (is_numeric($key) && (string) (int) $key === (string) $key) { $item .= sprintf("%d => ", $key); } else { $item .= sprintf("'%s' => ", addcslashes($key, "'\\")); } switch (gettype($value)) { case 'object': case 'array': $item .= "array(\r\n"; foreach ((array) $value as $k => $v) { $item .= Util_File::format_array_entry_as_settings_file_entry($tabs + 1, $k, $v); } $item .= sprintf("%s),\r\n", str_repeat("\t", $tabs)); return $item; case 'integer': $data = (string) $value; break; case 'double': $data = (string) $value; break; case 'boolean': $data = $value ? 'true' : 'false'; break; case 'NULL': $data = 'null'; break; default: case 'string': $data = "'" . addcslashes($value, "'\\") . "'"; break; } $item .= $data . ",\r\n"; return $item; }