如何从“对象”中检索变量


How to retrieve a variable from an "object"

下面的代码正在PSP数据库中生成付款。"print_r($result)"将给出如下打印输出:https://i.stack.imgur.com/wjsQQ.png

我的问题是;如何最轻松地检索"id"(值=10101870)并将其放入变量中?

不确定我是否应该只使用 json 或类似的东西,因为我不熟悉这种存储数据的方式(它是"对象"还是特殊类型的数组?

   $params = array(
       "currency"            => "DKK",
       "order_id"           => "1234567890",
   );                                                                    
   $data_string = http_build_query($params, '&'); 
   $headers = array(
          'Accept-Version: v10',
          'Accept: application/json', 
          'Authorization: Basic ' . base64_encode(":HIDDEN_KEY")
      );                                                                                  
   $ch = curl_init('https://api.quickpay.net/payments');                                                                      
   curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
   curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                  
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);      
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);     
   curl_setopt($ch, CURLOPT_HEADER, true);
   curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
   $result = curl_exec($ch);
   if(!curl_exec($ch)){
       die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
   }
   curl_close($ch);
   print_r($result);

删除此行

curl_setopt($ch, CURLOPT_HEADER, true);

因此,您的$result不会包含 HTTP 标头,只留下json有效负载。

然后解码json字符串并访问id成员

$object = json_decode($result);
print $object->id; 

看到它没有从print_r打印数组或对象,它看起来像一个 json 格式的字符串。您可以对 ID 执行的操作如下:

$data=json_decode($result, true);
echo $data['id'];

或者,如果要使用对象:

$data=json_decode($result);
echo $data->id;