在php中使用json之后,我得到stdClass,不能使用数组

在php中使用json之后,我得到stdClass,不能使用数组,php,jquery,arrays,json,associative-array,Php,Jquery,Arrays,Json,Associative Array,我在jquery中使用JSON.stringify(pageSettings)将数组ajax到php并保存文件。文件内容: {"MidHeight":367,"BotTop":502} 我在php中使用json_decode将其加载回数组: $pageSettings=json_decode(file_get_contents($path.$file); 打印时($pageSettings,true)结果为: stdClass Object ( [MidHeight] => 2

我在jquery中使用JSON.stringify(pageSettings)将数组ajax到php并保存文件。文件内容:

{"MidHeight":367,"BotTop":502}
我在php中使用json_decode将其加载回数组:

$pageSettings=json_decode(file_get_contents($path.$file);
打印时($pageSettings,true)结果为:

stdClass Object
(
    [MidHeight] => 276
    [BotTop] => 411
)
但当我试着用以下方式阅读时:

$pageSettings["MidHeight"]
我得到:

PHP Fatal error:  Cannot use object of type stdClass as array.

使用属性访问表示法(
$pageSettings->midweath
),或者告诉您始终使用第二个参数为您提供关联数组:
$pageSettings=json\u decode($json\u str,true)

什么对性能更好?这是主页,将会发生很多事情!,使用->或让json、true将其修复为数组?性能差异可以忽略不计。(如果您关心性能,您就不会使用PHP。)我认为您应该使用关联数组,因为您永远不必担心在PHP对象中很难或不可能表示的键名。好的,“如果我关心性能”,我会使用什么?:),(让我在5分钟内接受你的answare)Francis,你介意解释一下php的性能替代方案吗?真的吗?任何使用JIT编译的东西,任何编译成机器代码的东西,见鬼,任何不能在每个请求之间完全改变环境的东西。默认情况下,PHP甚至不缓存解析的字节码。还有比节省十几毫秒更重要的考虑因素。