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

时间:2016-01-14 20:11:48

标签: php arrays object

以下代码是在PSP数据库中生成付款。 “print_r($ result)”将提供如下打印输出:https://i.imgur.com/4HABiQW.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);

2 个答案:

答案 0 :(得分:0)

因为它没有从print_r打印数组或对象,所以它看起来像是json格式的字符串。您可以对ID进行以下操作:

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

或者如果你想使用对象:

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

答案 1 :(得分:0)

删除此行

curl_setopt($ch, CURLOPT_HEADER, true);

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

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

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