如何使用PHP在一行中执行此操作

时间:2011-08-18 07:40:46

标签: php

我有以下结构:

$par4 = json_decode($source_code)->$par1->$par2->$par3;
$par5 = $par4[0]->attributes->attribute[1]->value;

其中par1,par2和par3是字符串。如何在一行上链接par4和par5。

这不起作用,因为我猜想数组/对象嵌套:

json_decode($source_code)->$par1->$par2->$par3[0]->attributes->attribute[1]->value;

这是错误:

Undefined property: stdClass::$o

2 个答案:

答案 0 :(得分:3)

怎么样?
$par5 = current(json_decode($source_code)->$par1->$par2->$par3)->attributes->attribute[1]->value;

如果您始终需要数组的第一个(第0个)值,则此方法有效。

您还可以创建一个返回第n个值的函数:

function third_value($arr) { return $arr[2]; }
$par5 = third_value(json_decode($source_code)->$par1->$par2->$par3)->attributes->attribute[1]->value;

答案 1 :(得分:1)

我不确定,你真正需要的是尝试使用{}突出显示你需要的东西

{json_decode($source_code)->$par1->$par2->$par3}[0] // I think this is right
json_decode($source_code)->$par1->$par2->${par3[0]}
json_decode($source_code)->$par1->$par2->{$par3[0]}