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