}
// coerce booleans into correct values
- // NB: we should either do it for datetimes, integers and doubles, too,
+ // NB: we should either do it for datetimes, integers, i8 and doubles, too,
// or just plain remove this check, implemented on booleans only...
if ($type == static::$xmlrpcBoolean) {
if (strcasecmp($val, 'true') == 0 || $val == 1 || ($val == true && strcasecmp($val, 'false'))) {
*/
public function serialize($charsetEncoding = '')
{
- // add check? slower, but helps to avoid recursion in serializing broken xmlrpc values...
- //if (is_object($o) && (get_class($o) == 'xmlrpcval' || is_subclass_of($o, 'xmlrpcval')))
- //{
- reset($this->me);
- list($typ, $val) = each($this->me);
+ $val = reset($this->me);
+ $typ = key($this->me);
return '<value>' . $this->serializedata($typ, $val, $charsetEncoding) . "</value>\n";
- //}
}
/**
*/
public function scalarval()
{
- reset($this->me);
- list(, $b) = each($this->me);
+ $b = reset($this->me);
return $b;
}
/**
* Returns the type of the xmlrpc value.
*
- * For integers, 'int' is always returned in place of 'i4' or 'i8'.
+ * For integers, 'int' is always returned in place of 'i4'. 'i8' is considered a separate type and returned as such
*
* @return string
*/
public function scalartyp()
{
reset($this->me);
- list($a,) = each($this->me);
- if ($a == static::$xmlrpcI4 || $a == static::$xmlrpcI8) {
+ $a = key($this->me);
+ if ($a == static::$xmlrpcI4) {
$a = static::$xmlrpcInt;
}
return new \ArrayIterator();
}
-
public function offsetSet($offset, $value) {
switch ($this->mytype) {
}
return;
case 1:
-// todo: handle i4/i8 vs int
+// todo: handle i4 vs int
reset($this->me);
- list($type,) = each($this->me);
+ $type = key($this->me);
if ($type != $offset) {
throw new \Exception('');
}
case 2:
return isset($this->me['array'][$offset]);
case 1:
-// todo: handle i4/i8 vs int
+// todo: handle i4 vs int
return $offset == $this->scalartyp();
default:
return false;
return isset($this->me['array'][$offset]) ? $this->me['array'][$offset] : null;
case 1:
// on bad type: null or exception?
- reset($this->me);
- list($type, $value) = each($this->me);
+ $value = reset($this->me);
+ $type = key($this->me);
return $type == $offset ? $value : null;
default:
// return null or exception?