php - php字符串到对象变量 - 替换对象的名称
问题描述
目标替换对象名称的一部分。使用下面的代码获取错误。猜测 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
}
解决方案
如果要将表达式用作动态属性名称,则必须将其包装在{}
.
$data->{str_replace("SIEcat134","newname",$i)} = $data->$i;
当表达式只是一个简单的变量时,您只能省略大括号,如$data->$i
.
推荐阅读
- jquery - jQuery 验证插件不适用于 WordPress 中的表单
- mysql - 如何隐藏主键,因为我在 URL 中需要它们
- python - PySide2/Qt for python:当我单击按钮时,GUI 冻结
- vue.js - Quill 中的雪景菜单不会在 vue.js 中使用 v-if 或 v-show 隐藏
- mysql - 如何将行中的重复值转换为列作为新表
- php - 在同一个表中添加收藏夹、喜欢/不喜欢和视图(观看过的帖子)是一个好习惯吗?
- node.js - 使用 mongoose 在 ejs 中渲染数据
- nginx - 使用请求的值编辑位置中使用的 NGINX 变量
- wordpress - wordpress 下划线在需要下划线的插件之后加载
- unit-testing - NullInjectorError:NotifierQueueService 没有提供者!业力角 6