in Aliyun/Log/protocolbuffers.inc.php [280:313]
public static function toString($key, $value) {
if (is_null($value))
return;
$ret = str_repeat(self::$indent_char, self::$print_depth) . "$key=>";
if (is_array($value)) {
$ret .= "array(\n";
self::$print_depth++;
foreach($value as $i => $v)
$ret .= self::toString("[$i]", $v);
self::$print_depth--;
$ret .= str_repeat(self::$indent_char, self::$print_depth) . ")\n";
} else {
if (is_object($value)) {
self::$print_depth++;
$ret .= get_class($value) . "(\n";
$ret .= $value->__toString() . "\n";
self::$print_depth--;
$ret .= str_repeat(self::$indent_char, self::$print_depth) . ")\n";
} elseif (is_string($value)) {
$safevalue = addcslashes($value, "\0..\37\177..\377");
if (strlen($safevalue) > self::$print_limit) {
$safevalue = substr($safevalue, 0, self::$print_limit) . '...';
}
$ret .= '"' . $safevalue . '" (' . strlen($value) . " bytes)\n";
} elseif (is_bool($value)) {
$ret .= ($value ? 'true' : 'false') . "\n";
} else {
$ret .= (string)$value . "\n";
}
}
return $ret;
}