php字符串到对象变量-替换对象名称

时间:2019-03-17 09:37:40

标签: php object

目标是替换对象名称的一部分。使用以下代码获取错误。猜猜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 个答案:

答案 0 :(得分:1)

如果要将表达式用作动态属性名称,则必须将其包装在{}中。

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

仅当表达式只是一个简单变量时才可以省略花括号,例如$data->$i