示例#1
0
 /**
  * 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;
 }