我正在使用.json文件,我有以下功能:
//Rights array (WRITE, CREATE, DELETE, ADDUSERS, DELETE USERS)
function addUser($requester, $username, $rights) {
$file = $requester->getFolder() . "Projects/" . $this->name . "/Data/users.json";
$json = json_decode(file_get_contents($file, false));
$json[$username] = array("write" => $rights[0], "create" => $rights[1], "delete" => $rights[2], "adduser" => $rights[3], "deleteuser" => $rights[4]);
file_put_contents($file, json_encode($json));
}
每当我运行使用该函数的代码时,都会收到以下错误:
致命错误: 不能在 stdClass 中使用类型为数组的对象...
json_decode 的第二个参数默认为 false,这意味着它将生成一个对象。 使用 true 生成数组。
该错误来自您以数组形式访问$json $json[$username]
。 当它是一个对象时,您可以像这样访问它:$json->$username
.