2016-03-21 26 views
0

このネストされたオブジェクト値を返すAPIに接続しています。foreachネストされたオブジェクトphp

各["number:protected"]をどのように反復処理できますか?これは私にとって新しいものです。私は「番号:保護された」だけを返したいと思っています。私は何もなく、何かを持っている

Array 
(
[0] => SDK2go\seat2go Object 
    (
     [status:protected] => Vacant 
     [number:protected] => D,10,A,STR3,ROOM 
     [passenger:protected] => 
     [price:protected] => 
    ) 

[1] => SDK2go\seat2go Object 
    (
     [status:protected] => Vacant 
     [number:protected] => D,15,A,STR3,ROOM 
     [passenger:protected] => 
     [price:protected] => 
    ) 

[2] => SDK2go\seat2go Object 
    (
     [status:protected] => Vacant 
     [number:protected] => D,16,A,STR3,ROOM 
     [passenger:protected] => 
     [price:protected] => 
    ) 

[3] => SDK2go\seat2go Object 
    (
     [status:protected] => Vacant 
     [number:protected] => D,17,A,STR3,ROOM 
     [passenger:protected] => 
     [price:protected] => 
    ) 

[4] => SDK2go\seat2go Object 
    (
     [status:protected] => Vacant 
     [number:protected] => D,18,A,STR3,ROOM 
     [passenger:protected] => 
     [price:protected] => 
    ) 

[5] => SDK2go\seat2go Object 
    (
     [status:protected] => Vacant 
     [number:protected] => D,19,A,STR3,ROOM 
     [passenger:protected] => 
     [price:protected] => 
    ) 

) 

が示された。

foreach($sList as $list){ 
    echo $list['number:protected']; 
} 

を助けてください。前もって感謝します。

+2

'SDK2go \ seat2go'クラスの様子は?そこに 'getNumber()'メソッドがありますか?そうであれば、 '$ list-> getNumber()'のように呼んでください。何を使うべきかを見るためにパブリックメソッドを検索しなければなりません。 –

+1

これはオブジェクトの配列における名前空間のクラスのインスタンスです。クラス内の保護されたプロパティにアクセスしようとしています。保護されたプロパティが..保護されているので、これはオプションにはなりません。これをチェックしてください:http://stackoverflow.com/questions/4361553/php-public-private-protected ... @MateiMihaiが上記のように、これらのプロパティを取得できるgetterメソッドです。 – CodeGodie

+0

大丈夫です。 .echo $ obj-> getNumber(); – user3651476

答えて

0

ここで起こっていることは、APIが配列内のオブジェクト形式のクラスのインスタンスを返すことです。次のコードをチェックアウトし、それを模倣するには:上記

<?php 

namespace SDK2go; 

class seat2go 
{ 
    protected $status; 
    protected $number; 
    protected $passenger; 
    protected $price; 

    public function __construct($status, $number) 
    { 
     $this->status = $status; 
     $this->number = $number; 
    } 

    public function get_status() 
    { 
     echo $this->status; 
    } 

    public function get_number() 
    { 
     echo $this->number; 
    } 
} 

$arr = array(
    new seat2go("Vacant", "D,10,A,STR3,ROOM"), 
    new seat2go("Vacant", "D,15,A,STR3,ROOM"), 
    new seat2go("Vacant", "D,16,A,STR3,ROOM") 
); 


echo "<pre>"; 
print_r($arr); 
echo "</pre>"; 

することは、あなたが持っているprint_r結果が得られます。したがって、これらのプロパティにアクセスするには、クラスが持つ必要がある関数getterでコールする必要があります。次のようになります。

foreach ($arr as $a) { 
    echo $a->get_status(); 
    echo $a->get_number(); 
} 

これが役に立ちます。

関連する問題