将属性添加到 php 中对象顶部的 stdClass

2024-03-18

当创建一个对象时php用于返回 JSON 是否可以添加一个属性并强制它位于顶部?我想要这个,因为该对象是通过 API 公开的,并且最好在顶部有 id。

例如:

$obj = new stdClass();
$obj->name = 'John';
$obj->age = 26;
$obj->id = 3645;

当你json_encode()这样,它就变成:

{
    "name": "John",
    "age": 26,
    "id": 3645
}

有没有办法强制id位于对象的顶部,即使它是最后添加的?注意,我不能简单地添加id添加之前name and age因为其他依赖代码。


如果您使用关联数组而不是对象,则很容易实现,即

$x = ['name' => 'john', 'age' => 26]; // or: $x = (array)$obj
$x = ['id' => 123] + $x;
echo json_encode($x);
// {"id":123,"name":"john","age":26}

但是,需要注意的是,在 JSON 中未定义属性顺序 and 不应该依赖。如果你目前所拥有的有效,那么这个改变实际上是毫无用处的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将属性添加到 php 中对象顶部的 stdClass 的相关文章