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

PHP中无法用->操作符访问POST传递的JSON对象值问题求助

问题分析与解决方案

嘿,这问题其实很好理清!你之所以用->操作符访问会报错,核心原因就在json_decode的第二个参数设置上。

你看,你的PHP代码里写了:

$data = json_decode($employerdata, true);

这里的第二个参数true是明确告诉PHP:把JSON字符串解析成关联数组,而不是对象。所以$data本质是一个数组,自然不能用对象的->语法去访问属性,这就直接导致了Trying to get property of non-object的报错。

要想用->操作符访问,只需要把json_decode的第二个参数去掉(或者显式设为false,因为它的默认值就是false),这样解析后得到的就是一个stdClass对象了,刚好匹配你想要的面向对象访问风格。

修改后的PHP代码如下:

$employerdata = $_POST['employerdata'];
// 去掉第二个参数true,默认返回对象
$data = json_decode($employerdata);
// 现在可以正常用->访问属性了
var_dump($data->newemployeremail);
echo $data->newemployeremail;
echo $accessed = $data->newemployeremail;
echo 'Hi';

最后再给你划个重点:

  • 当json_decode的$assoc参数设为true:返回关联数组,要用$data['key']的方式访问
  • 当$assoc参数设为false(默认):返回标准对象,要用$data->key的方式访问

这样调整后,就完全符合你从过程式转向面向对象风格的需求啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:46:14