如何使用循环但不更改对象(光标)?

时间:2017-03-13 15:08:11

标签: php object foreach cursor

我刚刚发现我的打印处理程序确实改变了对象的光标。 (这意味着查看对象确实会改变它,我宁愿不这样做。)

例如,如果我打印mysqli_query的结果,我需要添加类似$ result-> data_seek(0)的内容;在我开始之前。

我尝试使用克隆而不是对象,但显然无法克隆mysqli_queries。

有没有办法在不改变它的情况下处理一个abitrary对象?

我简化了我的方法,专注于foreach循环。

提前感谢您的帮助! 彼得

private static function _recursivePrintHandler($input, string $tab)
{

  if(is_array($input))
  {
    $echoStr = 'array'. PHP_EOL;
  }
  elseif(is_object($input))
  {
    $echoStr = 'object'. PHP_EOL;
    //$input = clone $input; // does not work, i.e. one cannot clone mysqli objects :-(
  }
  else 
  {
    return 'UNKNOWN TYPE';
  }

  $echoStr .= $tab. '('. PHP_EOL;
  $tabAdditional = '    ';

  foreach ($input as $key => $value) 
  {
    $echoStr .= $tab. '['. $key. '] => '. CallSomeThing(). PHP_EOL;
  }
  $echoStr .= $tab. ')';
  return $echoStr;
}

0 个答案:

没有答案