在foreach循环中更新对象值

时间:2010-09-08 01:01:30

标签: php

我想循环查询对象的内容更新某些值并返回该对象。

function clearAllIds($queryObject)
{ 
   foreach($queryObject->result() as $row)
 {
  $row->id = 0;
 }
return $queryObject
}

在这个例子中,我想将所有ID值清零。如何在foreach循环中完成此操作?

请原谅格式化。

3 个答案:

答案 0 :(得分:4)

这完全取决于您的查询对象的类是什么,以及您是否能够Pass by reference

假设您的$queryObject->result()可以在写上下文中传递,您可以在$row前面添加&符号以通过引用传递它,如下所示:

foreach($queryObject->result() as &$row)
{
    $row->id = 0;
}

答案 1 :(得分:0)

function clearAllIds($queryObject)
{ 
   foreach($queryObject->result() as &$row)
   {
     $row->id = 0;
   }
   return $queryObject
}

使用&运算符以$ row作为参考。

编辑:如果$ queryObject是一个数组,这将有效。你可能应该这样做

$data = $queryObject->result();
foreach($data as &$row) { ... }
return $data;

答案 2 :(得分:0)

function trim_spaces($object)
        {       
            foreach (get_object_vars($object) as $property=> $value) 
                {
                    $object->$property=trim($value);
                }
         }

//无需返回对象,因为默认情况下它们是通过引用传递的