php-строка для объекта varible - замена имени объекта - PullRequest
0 голосов
/ 17 марта 2019

Цель заменить часть имени объекта. Получите ошибку с кодом ниже. Предположение, что str_replace должен быть в другом формате?

foreach($data as $i => $item) {
   if(strpos($i, 'SIEcat134') !== false){
       $data-> str_replace("SIEcat134","newname",$i) = $data->$i; 
       unset($data->$i);
    } 

}

Пример объекта (содержит еще много строк)

stdClass Object
(
    [SIEcat134analys] => test
    [SIEcat134avst1] => test2
    [SIEcat134avstbelcy1] => 469 915
    [SIEcat134avstref1] => 19.1
    [SIEcat135analys] => test
    [SIEcat135avst1] => test2
    [SIEcat135avstbelcy1] => 469 915
    [SIEcat135avstref1] => 19.1
 etc
etc
}

1 Ответ

1 голос
/ 17 марта 2019

Если вы хотите использовать выражение в качестве имени динамического свойства, вы должны обернуть его в {}.

$data->{str_replace("SIEcat134","newname",$i)} = $data->$i; 

Вы можете опустить фигурные скобки, только когда выражение является простой переменнойкак в $data->$i.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...