繁体   English   中英

在PHP中动态访问对象属性数组元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM