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

PHP向JSON文件添加新元素时覆盖原有内容的问题

问题解决:向users.json追加用户而非替换原有数据

问题根源:当users.json已有数据时,json_decode()默认返回对象类型,直接使用$users[]尝试追加元素会静默失败,最终导致新用户数据覆盖原有内容。

修复方案:

  • 强制json_decode()返回关联数组,确保可以正常追加元素
  • 处理文件为空的边界情况,避免null引发的异常

修复后的代码:

$user = new User($_POST['login'], $_POST['password'], $_POST['mail'], $_POST['name']);
// 读取文件内容,空文件时初始化为空数组
$usersContent = file_get_contents('users.json');
$users = $usersContent ? json_decode($usersContent, true) : [];
// 追加新用户数据
$users[] = $user->toArray();
// 写入文件
file_put_contents('users.json', json_encode($users));

关键修改说明:

  • json_decode($usersContent, true):第二个参数设为true,将JSON结构转为PHP关联数组,支持[]追加操作
  • 三元表达式$usersContent ? ... : []:处理文件为空的场景,保证$users始终是数组类型,避免后续操作报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:35:18