PHP修改对象的数组元素

时间:2018-09-12 16:26:30

标签: php object

我有以下问题:我想修改对象的元素。 访问元素的工作方式如下:

foreach($ob as $element){echo $element->id;}

如果我也这样做

foreach($ob as $element){$element->id='XYZ';}

但这不会保存到对象中

我尝试了以下操作:

 foreach($ob as &$element){$element->id='XYZ';}

但是在这种情况下,出现以下错误:

  

迭代器不能与按引用的foreach一起使用

实际上$ ob是一个Cakephp查询对象,看起来像:

    [
    (int) 0 => object(App\Model\Entity\Document) {
            'id' => (int) 26,'name'=>'Fax'}
(int) 1 => object(App\Model\Entity\Document) {
                'id' => (int) 26,'name'=>'Email'}
]

并且我想修改ID。

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我经常处理对象数组。
最适合我的是常见的for()循环

$iobcount = count($ob);

for($iob = 0; $iob < $iobcount; $iob++)
  $ob[$iob]->id = 'XYZ';