我的阵列出了什么问题?

时间:2014-05-19 16:28:52

标签: php arrays json

我正在尝试构建一个简单的缓存脚本。它正在运行,但是如果数据缓存在我的现有 JSON中,我想要包含信息。

我试过了:

$cached = file_get_contents("./cache/" . escapeFileName($request));
$update = json_decode(json_encode($cached), true);
$update['server']['cached'] = true;
return json_encode($update);

其中文件的数据是有效的JSON。我只想添加一个包含信息server的{​​{1}}节点。该脚本会发出警告并发出致命错误:

  

PHP警告:非法字符串偏移'服务器'

  

PHP致命错误:不能将字符串偏移用作数组

1 个答案:

答案 0 :(得分:1)

是的,你可以先打印数组,然后你会发现它打印的数据是一种对象而不是数组。你只需添加

$update = (array) json_decode(json_encode($cached), true);

输入数据。它将解决您的问题。