微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP遍历数组并附加到对象

我有很多这样的对象;

Array
(
    [0] => stdClass Object
        (
            [Job] => stdClass Object
                (
                    [ID] => 123
                    [Name] => Foo
                 )
        )
    [1] => stdClass Object
        (
            [Job] => stdClass Object
                (
                    [ID] => 456
                    [Name] => BAR
                 )
        )
)

我需要遍历数组,并将一些其他信息附加到“状态”之类的对象中,但是我遇到了一些问题.

foreach($arrJobs as $key => $val) {

  $arrJobs[$key]->Job->Status = new StdClass;
  $arrJobs[$key]->Job->Status = $myStatus;

}

这似乎可行,但是我收到以下警告;

Warning: Creating default object from empty value in…

解决方法:

根据我对您的理解,您只需要将属性附加到现有对象即可.不要在循环中创建新对象

你只需要这个

foreach ($arrJobs as $obj)
{
    $obj->job->status = $myStatus;
}

查看完整代码

<?PHP
$obj1 = new \stdClass();
$obj1->job = new \stdClass();
$obj1->job->id = 123;
$obj1->job->name = "foo";

$obj2 = new \stdClass();
$obj2->job = new \stdClass();
$obj2->job->id = 456;
$obj2->job->name = "bar";

$array = [$obj1,$obj2];

var_dump($array);
foreach ($array as $obj)
{
    $obj->job->status = "the status";
    //add any properties as you like dynamicly here
}
echo "<br>\nafter<br>\n";
var_dump($array);
exit;

现在$obj1和$obj2具有新的属性’status’,请参见该演示:(https://eval.in/833410)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐