php - 将嵌套对象链存储在变量中
问题描述
所以可以说我有一个像这样的对象
{
"status": "AlreadyVerified"
}
我想将属性键存储在变量中,这样我就可以使用该变量访问属性,例如
$key = 'status';
echo $object->$key
但是如果我有一个像这样的嵌套对象怎么办
{
"extra_info": {#305 ▼
+"status": "AlreadyVerified"
}
}
这行不通
$key = 'extra_info->status';
echo $object->$key
如何将嵌套对象链存储在变量中,以便可以使用该变量访问其属性?
最好是适用于嵌套和平面对象的某种方式(我猜这就是所谓的!)
解决方案
这是一种方法,尽管可能不安全,具体取决于$key
来源:
<?php
$object = new stdClass();
$object->extra_info = new stdClass();
$object->extra_info->status = 'AlreadyVerified';
$key = 'extra_info->status';
eval( 'echo $object->'.$key.';' );
输出:
已经验证
此外,如果您想解析,$key
则可以使用递归函数来访问嵌套值。
推荐阅读
- mongodb - 有没有办法在 mongoDB 中获取日志以及用户 ip 地址的任何操作?
- visual-studio - 构建后事件命令行:xcopy ERROR
- elasticsearch - 无法在弹性 7.5.1 中启动 Packetbeat
- jquery - 如何制作平滑的块外观?
- javascript - 根据单选按钮选择打开下拉菜单
- java - 防止 Spring Boot 缓存文件
- javascript - List.js 搜索对象?
- java - 使用 tess4j 库的 Tesseract OCR
- ubuntu-16.04 - ROS-Kinetic:无效标签:无法加载命令参数:命令返回代码 [1]
- javascript - 列表中新添加的项目不是 React 中的重新渲染组件