You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向PHP对象内部的变量写入值?

修改PHP数组中嵌套对象的属性值

看起来你是想修改PHP数组里嵌套的stdClass对象的属性,尤其是那个存为JSON字符串的rota_entry字段对吧?我来一步步给你讲怎么操作:

1. 直接修改对象的普通属性

首先,你的数据结构是一个数组,第一个元素是stdClass对象,要修改对象里的普通属性(比如rota_name、rota_owner_name)很简单,直接用->访问属性并赋值就行:

// 假设你的数组变量叫 $myArray
// 修改 rota_name
$myArray[0]->rota_name = "Updated Tea & Coffee Rota";
// 修改 rota_owner_name
$myArray[0]->rota_owner_name = "12";

2. 处理嵌套的JSON格式属性(rota_entry)

rota_entry是一个JSON字符串,不是直接可操作的数组/对象,所以需要先解码,修改后再编码回去:

步骤1:解码JSON为PHP数组

用json_decode()把JSON字符串转成关联数组(第二个参数传true),这样更方便修改:

// 解码JSON字符串为关联数组
$rotaEntries = json_decode($myArray[0]->rota_entry, true);

// 可选:检查解码是否成功
if ($rotaEntries === null) {
    die("JSON解码失败:" . json_last_error_msg());
}

步骤2:修改数组里的内容

现在你可以像操作普通PHP数组一样修改里面的字段了,比如:

// 修改 rota_entry0 的 person 值
$rotaEntries['rota_entry0']['person'] = "10";
// 修改 rota_entry1 的日期
$rotaEntries['rota_entry1']['rota_assignment_date'] = "2018-04-09 09:30:00";
// 新增一个rota条目(如果需要的话)
$rotaEntries['rota_entry3'] = [
    'person' => '15',
    'rota_assignment_date' => '2018-04-22 20:17:48',
    'rota_role' => 'Lead'
];

步骤3:重新编码为JSON并赋值回对象

修改完成后,用json_encode()把数组转回JSON字符串,再赋值给对象的rota_entry属性:

$myArray[0]->rota_entry = json_encode($rotaEntries);

这样就完成了所有属性的修改啦!如果之后需要验证结果,可以用var_dump($myArray[0])查看修改后的对象内容。

内容的提问来源于stack exchange,提问作者user1616338

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:37:54