从PHP中的字符串访问“复杂”对象属性

时间:2018-06-20 22:08:48

标签: php

我有一个对象,需要从这样的字符串访问属性:

requests==2.19.1

我已经尝试过类似的方法,但是它不起作用:

$string = 'items[0]->sellers[0]->commertialOffer->Price';

有什么主意吗?

3 个答案:

答案 0 :(得分:0)

您是否在两个函数之间传递字符串?如果是,则取4个值并创建类似:-

的字符串
$string = $value1.'|'.$value2.'|'.$value3.'|'.$value4 ;

然后将字符串爆炸并取回4个值。

答案 1 :(得分:0)

$items = '{"items":[{"sellers":[{"commertialOffer":{"Price":33}}]}]}';
$myObject = json_decode($items);
$string = 'items[0]->sellers[0]->commertialOffer->Price';
echo ($myObject->{'items'}[0]->{'sellers'}[0]->{'commertialOffer'}->{'Price'});
echo ($myObject->items[0]->sellers[0]->commertialOffer->Price);

$myObject->items是一个数组,您不能像

那样访问它
$string = 'items[0]';
echo $myObject->{$string};

您可以使用

进行访问
$string = 'items';
echo $myObject->{$string}[0];

答案 2 :(得分:-1)

您可能想修改问题,因为从字符串解释原始代码通常是一个坏主意。您可能会使用eval函数:see。同样,这可能不是一个好主意:when is eval evil?