目标是替换对象名称的一部分。使用以下代码获取错误。猜猜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
}
答案 0 :(得分:1)
如果要将表达式用作动态属性名称,则必须将其包装在{}
中。
$data->{str_replace("SIEcat134","newname",$i)} = $data->$i;
仅当表达式只是一个简单变量时才可以省略花括号,例如$data->$i
。