动态访问PHP中的对象属性数组元素
问题描述:
我有一个对象,我想动态地进行交互。我想重新命名game1_team1:动态访问PHP中的对象属性数组元素
$default_value = $individual_match->field_match_game1_team1[0]['value'];
是game1_team2,game2_team1,game2_team2,game3_team1等。基于环路他们在
我曾尝试:
$dynamic = 'field_match_game'.$i.'_team'.$j;
$default_value = $individual_match->$dynamic[0]['value'];
但它返回
Fatal error: Cannot use string offset as an array
更新:基于扫罗的回答,我修改了代码:
$default_value = $individual_match->{'field_match_game'.$i.'_team'.$j}[0]['value'];
它摆脱了致命错误,但没有返回值。
答
$individual_match->field_match_game1team1[0]['value'] = 'hello1';
$i = 1;
$j = 1;
$default_value = $individual_match->{'field_match_game'.$i.'team'.$j}[0]['value'];
答
'重命名'是不可能的,除非你创建一个新的属性,并删除旧的。 访问动态的名字是这样的:
$dynamic = "field_match_$i_team$j";
$default_value = $individual_match->$dynamic[0]['value'];
注->
和dynamic
之间的$
。在此
$oldProperty = "field_match_1_team1";
$newProperty = "field_match_$i_team$j";
$hold = $individual_match->$oldProperty;
unset($individual_match->$oldProperty);
$individual_match->$newProperty = $hold;
+0
两个挑战:1. $ dynamic =“field_match_ $ i_team $ j”;似乎不工作,因为变量被假定为$ i_team ...而不是$ i。 2.使用$ dynamic [0] ['value']返回“致命错误:不能使用字符串偏移作为数组” – Ted 2010-10-24 15:17:45
为什么人们不断要求变量变量?数组出了什么问题? – delnan 2010-10-24 15:18:59
它是创建对象的第三方模块。 – Ted 2010-10-24 15:23:47