{
$this->logDeprecationUnlessCalledBy('serialize');
- $rs = '';
-
if (!isset(static::$xmlrpcTypes[$typ])) {
- return $rs;
+ return '';
}
switch (static::$xmlrpcTypes[$typ]) {
case 1:
switch ($typ) {
case static::$xmlrpcBase64:
- $rs .= "<{$typ}>" . base64_encode($val) . "</{$typ}>";
+ $rs = "<{$typ}>" . base64_encode($val) . "</{$typ}>";
break;
case static::$xmlrpcBoolean:
- $rs .= "<{$typ}>" . ($val ? '1' : '0') . "</{$typ}>";
+ $rs = "<{$typ}>" . ($val ? '1' : '0') . "</{$typ}>";
break;
case static::$xmlrpcString:
// Do NOT use htmlentities, since it will produce named html entities, which are invalid xml
- $rs .= "<{$typ}>" . $this->getCharsetEncoder()->encodeEntities($val, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "</{$typ}>";
+ $rs = "<{$typ}>" . $this->getCharsetEncoder()->encodeEntities($val, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "</{$typ}>";
break;
case static::$xmlrpcInt:
case static::$xmlrpcI4:
case static::$xmlrpcI8:
- $rs .= "<{$typ}>" . (int)$val . "</{$typ}>";
+ $rs = "<{$typ}>" . (int)$val . "</{$typ}>";
break;
case static::$xmlrpcDouble:
// avoid using standard conversion of float to string because it is locale-dependent,
// sprintf('%F') could be most likely ok, but it fails e.g. on 2e-14.
// The code below tries its best at keeping max precision while avoiding exp notation,
// but there is of course no limit in the number of decimal places to be used...
- $rs .= "<{$typ}>" . preg_replace('/\\.?0+$/', '', number_format((double)$val, PhpXmlRpc::$xmlpc_double_precision, '.', '')) . "</{$typ}>";
+ $rs = "<{$typ}>" . preg_replace('/\\.?0+$/', '', number_format((double)$val, PhpXmlRpc::$xmlpc_double_precision, '.', '')) . "</{$typ}>";
break;
case static::$xmlrpcDateTime:
if (is_string($val)) {
- $rs .= "<{$typ}>{$val}</{$typ}>";
+ $rs = "<{$typ}>{$val}</{$typ}>";
// DateTimeInterface is not present in php 5.4...
} elseif (is_a($val, 'DateTimeInterface') || is_a($val, 'DateTime')) {
- $rs .= "<{$typ}>" . $val->format('Ymd\TH:i:s') . "</{$typ}>";
+ $rs = "<{$typ}>" . $val->format('Ymd\TH:i:s') . "</{$typ}>";
} elseif (is_int($val)) {
- $rs .= "<{$typ}>" . date('Ymd\TH:i:s', $val) . "</{$typ}>";
+ $rs = "<{$typ}>" . date('Ymd\TH:i:s', $val) . "</{$typ}>";
} else {
// not really a good idea here: but what should we output anyway? left for backward compat...
- $rs .= "<{$typ}>{$val}</{$typ}>";
+ $rs = "<{$typ}>{$val}</{$typ}>";
}
break;
case static::$xmlrpcNull:
if (PhpXmlRpc::$xmlrpc_null_apache_encoding) {
- $rs .= "<ex:nil/>";
+ $rs = "<ex:nil/>";
} else {
- $rs .= "<nil/>";
+ $rs = "<nil/>";
}
break;
default:
// no standard type value should arrive here, but provide a possibility
// for xml-rpc values of unknown type...
- $rs .= "<{$typ}>{$val}</{$typ}>";
+ $rs = "<{$typ}>{$val}</{$typ}>";
}
break;
case 3:
// struct
if ($this->_php_class) {
- $rs .= '<struct php_class="' . $this->_php_class . "\">\n";
+ $rs = '<struct php_class="' . $this->_php_class . "\">\n";
} else {
- $rs .= "<struct>\n";
+ $rs = "<struct>\n";
}
$charsetEncoder = $this->getCharsetEncoder();
/** @var Value $val2 */
foreach ($val as $key2 => $val2) {
$rs .= '<member><name>' . $charsetEncoder->encodeEntities($key2, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "</name>\n";
- //$rs.=$this->serializeval($val2);
$rs .= $val2->serialize($charsetEncoding);
$rs .= "</member>\n";
}
break;
case 2:
// array
- $rs .= "<array>\n<data>\n";
+ $rs = "<array>\n<data>\n";
/** @var Value $element */
foreach ($val as $element) {
- //$rs.=$this->serializeval($val[$i]);
$rs .= $element->serialize($charsetEncoding);
}
$rs .= "</data>\n</array>";
break;
default:
+ /// @todo log a warning?
+ $rs = '';
break;
}