[英]Dynamically access an object property array element in PHP
我有一个想要动态交互的对象。 我想将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'];
摆脱了致命错误,但没有返回值。
$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;
看一下: http : //php.net/manual/en/function.get-class-vars.php您可以在数组中列出所有对象的属性,然后仅选择所需的属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.