2016-08-29 4 views
0

私は[ID]を取得しようとするので、私は解析PHPオブジェクト値

$basic = $client->api('image')->upload($imageData); 
$data = $basic->id; 
print_r($data); 

のようなものを試してみましたが、値が空である

Imgur\Api\Model\Basic Object 
(
    [data:Imgur\Api\Model\Basic:private] => Array 
     (
      [id] => 1XgbfFV 
      [title] => PIC 2 TITLE 
      [description] => PIC 2 DESC 
      [datetime] => 1472495069 
      [type] => image/jpeg 
      [animated] => 
      [width] => 590 
      [height] => 1382 
      [size] => 35307 
      [views] => 0 
      [bandwidth] => 0 
      [vote] => 
      [favorite] => 
      [nsfw] => 
      [section] => 
      [account_url] => 
      [account_id] => 0 
      [in_gallery] => 
      [deletehash] => tZUGIGuV9Bfv6lV 
      [name] => PIC 2 NAME 
      [link] => http://i.imgur.com/1XgbfFV.jpg 
      [is_ad] => 
     ) 

    [success:Imgur\Api\Model\Basic:private] => 1 
    [status:Imgur\Api\Model\Basic:private] => 200 
) 

を次のようしています。 [ID]の値を$データに取得するにはどうすればよいですか

ありがとう!

+1

それはプライベートですので、あなたがそのように取得することはできません。 –

+0

フィードバックをいただきありがとうございます。データを取得する方法はありますか? –

+0

これはあなたが作成したクラスですか、ベンダーパッケージからのクラスですか? – bretterer

答えて

0

データオブジェクトのすべての項目はプライベートです。 Imgurクラスで行うべきことは、データオブジェクトを返す新しいメソッドgetDataを作成することです。

これをさらに拡張するには、魔法のgetメソッドを作成します。

public function __get($property) 
{ 
    if(isset($this->data[$property]) { 
     return $this->data[$property]; 
    } 

    return null; 
} 
それを魔法の方法のやり方をやっている場合、あなたは単に実行することができます

$basic->idそれがために魔法ゲッターの1XgbfFVで応答しなければなりません。

作成したクラスでない場合は、ImgurパッケージのAPIを参照して、データ配列のアクセサーがあるかどうかを判断する必要があります。

1

this is the same code you're using in PHPは、プライベートメンバを返す行60、上/lib/Imgur/Api/Model/Basic.phpyou can see from the code it has a getData() public methodのようにImgur APIと話をする場合。メンバーはプライベートなので、$basicオブジェクトから直接アクセスすることはできません。これはImgur\Api\Model\Basicのインスタンスに見えます。

ので、代わりにあなたは、このような公共ゲッターを使用して...

$basic = $client->api('image')->upload($imageData); 
$data = $basic->getData(); 
var_dump($data->id);