开发者

PHP: Accessing an object property with a variable

Let's assume I have an array of object properties I'd like to access:

$properties = array('foo', 'bar');

I'd like to loop through the object and access these properties dynamically (specifically, I'm trying to dynamically handle missing JSON elements based on an array of expected elements):

foreach ($data as $item) {
    foreach ($properties as $property) {
        if (empty($item->{$property})) {
            // Do something
        }
    }
}

Each $item in $data should have the properties 'foo' and 'bar'. I'm handling the cases where 'foo' or 开发者_运维知识库'bar' doesn't exist.

I'm trying to get the loop (in line 3) to access $item->{'foo'} and $item->{'bar'}, but it's not working.

Any idea why? I'm fairly certain it's a matter of syntax, but obviously I haven't been able to figure this out!

Thanks!


Could you not use property_exists($item, $property).

foreach ($data as $item) {
    foreach ($properties as $property) {
        if ( property_exists($item, $property) ) {
            // Do something
        }
    }
}


If what you're doing involves modifying the original set of items, keep in mind that foreach operates on a copy of the original array. If you want to modify things in the original array, you'll need to use something like foreach($arr as $k => $v) syntax, then modify $arr[$k].


I figured it out...

I think I was working on the wrong portion of the object.

Thanks for the informative answers!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜