我有一个对象,我想动态地进行交互。我想将game1_team1重命名为:
$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'];
但它返回
致命错误:无法使用字符串偏移量 作为一个数组
更新:根据Saul的回答,我将代码修改为:
$default_value = $individual_match->{'field_match_game'.$i.'_team'.$j}[0]['value'];
摆脱了致命错误,但没有返回值。
答案 0 :(得分:7)
$individual_match->field_match_game1team1[0]['value'] = 'hello1';
$i = 1;
$j = 1;
$default_value = $individual_match->{'field_match_game'.$i.'team'.$j}[0]['value'];
答案 1 :(得分:0)
除非您创建新属性并删除旧属性,否则无法重命名。 访问动态名称,如下所示:
$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;
答案 2 :(得分:0)
看看这个:http://php.net/manual/en/function.get-class-vars.php 您可以在数组中列出所有对象的属性,并仅选择所需的。