1
我有一个“obj”对象和一个“str”字符串。 如何从“obj”设置$ str属性? 这是我的尝试:从PHP中的对象设置变量属性
$jsonStr = '{"foo":"bar","number":1}';
$jsonObj = json_decode($jsonStr);
$property = $_GET["prop"];
$jsonObj->$property = "value";
file_put_contents("OUT",json_encode($jsonObj));
它总是输出 “{}”!
注意:请对不起英文不好,我不是英语母语的人。
编辑: 我试着var_dump()代码中的每个变量。
- $ _GET [ “托”]是
"foo"
- $ jsonObj实际上是
object(stdClass)#1 (1) {["foo"]:"value", ["number"]:1}
所以误差在file_put_contents("OUT",json_encode($jsonObj));
...
编辑2: 我发现了错误! 在实际代码中,我写了
$jsonStr = '{"foo":"bar","number":1}';
$jsonObj = json_decode($jsonStr);
$property = $_GET["prop"];
$jsonObj->$property = "value";
file_put_contents("OUT",json_encode( ---->$jsonStr<----- ERROR!));
感谢您的帮助!
你确定是你的所有代码吗?由于@AlexanderMadyuskin说你的代码工作正常。 –
$ jsonObj - > $ property =“value”;这是什么?...为什么你使用这样的语句.. –
我使用它来保存使用PHP和JavaScript的文件中的JS变量。客户端做类似set.php的东西?prop = foo&value = bar。它们全部保存在单个JSON文件中。为了得到它们,用户调用get.php?prop = foo。 – SergSoftwares