php - 我如何从php中的对象中获取值
问题描述
我有一个 php 对象,我想从中获取一些值
这就是我所拥有的:
$data = Array (
"title"=> "videotitle",
"filename"=> "test.mp4",
"description"=> "test"
);
$title = ???;
如何在变量中获取标题的值?
解决方案
只是一个 php 对象的快速指南,因为您选择的符号应该会引发错误,因为 php 没有像 javascript 或其他语言那样的短对象符号。如果您想在类型提示方面使用未知的匿名对象,那么它们在某种程度上也是不干净的。
php标准类
$object = new stdClass();
$object->foo = 'bar';
$object->bar = 'foo';
$foo = $object->foo;
这应该是声明一个简单对象的唯一干净方式。当然,还有其他一些方法和手段,但不幸的是,它们都很杂乱,根本不符合干净代码的标准。
自有值对象
class MyValueObject implements JsonSerializable
{
public function __construct(
protected string $foo,
protected int $bla
) {}
public function jsonSerialize()
{
return get_object_vars($this);
}
}
这是构造函数属性提升。这种不以旧方式定义对象属性的简短表示法从 php 8 开始可用。您可以按如下方式访问此属性。
$object = new MyValueObject('bla', 2021);
echo $object->foo; // echoes 'bla'
echo $object->bla; // echoes 2021;
要将对象作为 JSON 表示法获取,只需将其作为 json 回显。
echo json_serialize($object);
...这将最终在..
{
foo: 'bla',
bla: 2021
}
而已。
推荐阅读
- javascript - 在 HTML 中加载 CSV 自动加载相同的文件
- java - 在 Java 中设置字体时出现空指针异常
- python - Python 多处理池创建的进程比指定的多
- or-tools - Google OR-Tools:具有多种货物类型和容量的 CVRP
- powershell - 通过带有变量传输的脚本创建 Powershell 脚本
- kubernetes-helm - 如何定义开始顺序
- node.js - 如何模拟适用于 Node.js 的 AWS SDK v3?
- postgresql - 错误:功能 geography_eq 的权限被拒绝
- javascript - Dragula 已导入但无法正常工作。拉拉维尔
- reactjs - 如何在 NextJS 上插入查询字符串