$v = $response->value();
if ($v->kindOf() == "array") {
- $max = $v->arraysize();
+ $max = $v->count();
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
echo "<thead>\n<tr><th>Method ($max)</th><th>Description</th></tr>\n</thead>\n<tbody>\n";
for ($i = 0; $i < $max; $i++) {
if ($x->kindOf() == "array") {
$ret = $x->arraymem(0);
echo "<code>OUT: " . htmlspecialchars($ret->scalarval(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding) . "<br />IN: (";
- if ($x->arraysize() > 1) {
+ if ($x->count() > 1) {
for ($k = 1; $k < $x->arraysize(); $k++) {
$y = $x->arraymem($k);
echo htmlspecialchars($y->scalarval(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding);
$payload .= "</value></param>\n";
}
$alt_payload .= $y->scalarval();
- if ($k < $x->arraysize() - 1) {
+ if ($k < $x->count() - 1) {
$alt_payload .= ';';
echo ", ";
}
case 'wrap':
$r1 = $resp[0]->value();
$r2 = $resp[1]->value();
- if ($r2->kindOf() != "array" || $r2->arraysize() <= $methodsig) {
+ if ($r2->kindOf() != "array" || $r2->count() <= $methodsig) {
echo "Error: signature unknown\n";
} else {
$mdesc = $r1->scalarval();
if (!$resp->faultCode()) {
print "The server gave me these results:<pre>";
$value = $resp->value();
- $max = $value->arraysize();
- for ($i = 0; $i < $max; $i++) {
- $struct = $value->arraymem($i);
+ foreach ($value as $struct) {
$name = $struct->structmem("name");
$age = $struct->structmem("age");
print htmlspecialchars($name->scalarval()) . ", " . htmlspecialchars($age->scalarval()) . "\n";
$v = $resp->value();
// Then, retrieve the signature and help text of each available method
- for ($i = 0; $i < $v->arraysize(); $i++) {
- $methodName = $v->arraymem($i);
+ foreach ($v as $methodName) {
print "<h4>" . $methodName->scalarval() . "</h4>\n";
// build messages first, add params later
$m1 = new PhpXmlRpc\Request('system.methodHelp');
// note: using PhpXmlRpc\Encoder::decode() here would lead to cleaner code
$val = $rs[1]->value();
if ($val->kindOf() == "array") {
- for ($j = 0; $j < $val->arraysize(); $j++) {
- $x = $val->arraymem($j);
+ foreach ($val as $x) {
$ret = $x->arraymem(0);
print "<code>" . $ret->scalarval() . " "
. $methodName->scalarval() . "(";
- if ($x->arraysize() > 1) {
- for ($k = 1; $k < $x->arraysize(); $k++) {
+ if ($x->count() > 1) {
+ for ($k = 1; $k < $x->count(); $k++) {
$y = $x->arraymem($k);
print $y->scalarval();
- if ($k < $x->arraysize() - 1) {
+ if ($k < $x->count() - 1) {
print ", ";
}
}
$reqMethod = $encoder->decode($req->getParam(1));
$pars = $req->getParam(2);
$req = new PhpXmlRpc\Request($reqMethod);
- for ($i = 0; $i < $pars->arraySize(); $i++) {
- $req->addParam($pars->arraymem($i));
+ foreach ($pars as $par) {
+ $req->addParam($par);
}
// add debug info into response we give back to caller
function bitFlipper($req)
{
$v = $req->getParam(0);
- $sz = $v->arraysize();
$rv = new Value(array(), Value::$xmlrpcArray);
- for ($j = 0; $j < $sz; $j++) {
- $b = $v->arraymem($j);
+ foreach ($v as $b) {
if ($b->scalarval()) {
$rv->addScalar(false, "boolean");
} else {
$v = new Value();
$agar = array();
- $max = $sno->arraysize();
+ $max = $sno->count();
PhpXmlRpc\Server::xmlrpc_debugmsg("Found $max array elements");
- for ($i = 0; $i < $max; $i++) {
- $rec = $sno->arraymem($i);
+ foreach ($sno as $rec) {
if ($rec->kindOf() != "struct") {
$err = "Found non-struct in array at element $i";
break;
{
$encoder = new PhpXmlRpc\Encoder();
$cookies = $req->getParam(0);
- while (list($name, $value) = $cookies->structeach()) {
+ foreach ($cookies as $name => $value) {
$cookieDesc = $encoder->decode($value);
setcookie($name, @$cookieDesc['value'], @$cookieDesc['expires'], @$cookieDesc['path'], @$cookieDesc['domain'], @$cookieDesc['secure']);
}
{
$sno = $req->getParam(0);
$numCurly = 0;
- for ($i = 0; $i < $sno->arraysize(); $i++) {
- $str = $sno->arraymem($i);
- $str->structreset();
- while (list($key, $val) = $str->structeach()) {
+ foreach ($sno as $str) {
+ foreach ($str as $key => $val) {
if ($key == "curly") {
$numCurly += $val->scalarval();
}
function v1_moderateSizeArrayCheck($req)
{
$ar = $req->getParam(0);
- $sz = $ar->arraysize();
+ $sz = $ar->count();
$first = $ar->arraymem(0);
$last = $ar->arraymem($sz - 1);
implementation clashes with the new one if you implemented:
-| Class | Method | Notes |
-| --------- | ----------- | -------------------------------------- |
-| xmlrpcval | count | implements interface Countable |
-| xmlrpcval | getIterator | implements interface IteratorAggregate |
+| Class | Method | Notes |
+| --------- | ----------- | --------------------------------------- |
+| xmlrpcval | count | implements interface: Countable |
+| xmlrpcval | getIterator | implements interface: IteratorAggregate |
Global variables cleanup
if ($rets->kindOf() != 'array') {
return false; // bad return type from system.multicall
}
- $numRets = $rets->arraysize();
+ $numRets = $rets->count();
if ($numRets != count($reqs)) {
return false; // wrong number of return values.
}
$val = $rets->arraymem($i);
switch ($val->kindOf()) {
case 'array':
- if ($val->arraysize() != 1) {
+ if ($val->count() != 1) {
return false; // Bad value
}
// Normal return value
return $xmlrpcVal->scalarval();
case 'array':
- $size = $xmlrpcVal->arraysize();
+ $size = $xmlrpcVal->count();
$arr = array();
for ($i = 0; $i < $size; $i++) {
$arr[] = $this->decode($xmlrpcVal->arraymem($i), $options);
return $arr;
case 'struct':
- $xmlrpcVal->structreset();
// If user said so, try to rebuild php objects for specific struct vals.
/// @todo should we raise a warning for class not found?
// shall we check for proper subclass of xmlrpc value instead of
&& class_exists($xmlrpcVal->_php_class)
) {
$obj = @new $xmlrpcVal->_php_class();
- while (list($key, $value) = $xmlrpcVal->structeach()) {
+ foreach ($xmlrpcVal as $key => $value) {
$obj->$key = $this->decode($value, $options);
}
return $obj;
} else {
$arr = array();
- while (list($key, $value) = $xmlrpcVal->structeach()) {
+ foreach ($xmlrpcVal as $key => $value) {
$arr[$key] = $this->decode($value, $options);
}
if ($params->kindOf() != 'array') {
return static::_xmlrpcs_multicall_error('notarray');
}
- $numParams = $params->arraysize();
+ $numParams = $params->count();
$req = new Request($methName->scalarval());
for ($i = 0; $i < $numParams; $i++) {
// let accept a plain list of php parameters, beside a single xmlrpc msg object
if (is_object($req)) {
$calls = $req->getParam(0);
- $numCalls = $calls->arraysize();
+ $numCalls = $calls->count();
for ($i = 0; $i < $numCalls; $i++) {
$call = $calls->arraymem($i);
$result[$i] = static::_xmlrpcs_multicall_do_call($server, $call);
/**
* Reset internal pointer for xmlrpc values of type struct.
+ * @deprecated iterate directly over the object using foreach instead
*/
public function structreset()
{
* Return next member element for xmlrpc values of type struct.
*
* @return Value
+ *
+ * @deprecated iterate directly over the object using foreach instead
*/
public function structeach()
{
*
* @return integer
*
- * @deprecateduse count() instead
+ * @deprecated use count() instead
*/
public function structsize()
{
* @return ArrayIterator
*/
public function getIterator() {
- return new \ArrayIterator($this->me);
+ switch ($this->mytype) {
+ case 3:
+ return new \ArrayIterator($this->me['struct']);
+ case 2:
+ return new \ArrayIterator($this->me['array']);
+ case 1:
+ return new \ArrayIterator($this->me);
+ default:
+ return new \ArrayIterator();
+ }
+ return new \ArrayIterator();
}
}
\ No newline at end of file