簡體   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