2012-02-22 12 views
1

やあみんな、私はここで構文が正しいように見えることはできません、私はちょうどタイプが存在するかどうかを確認しようとしている、 私はこのアクセスネストされたオブジェクト配列

if($obj->type) /* do something */ 
if($obj[0]->type) /* do something */ 
if($obj->type[0]) /* do something */ 

を試してみました

stdClass::__set_state(
array(
    '0' => 
    stdClass::__set_state(
    array(
    'report_number' => '555', 
    'type' => 'citrus', 
    'region' => 'Seattle', 
    'customer_number' => '9757', 
    'customer' => 'The Name', 
    'location' => 'West Seattle, WA', 
    'shipper' => 'Yamato Transport', 
    'po' => '33215', 
    'commodity' => 'RARE', 
    'label' => 'PRODUCE', 
)), 
)) 

しかし、ちょうどそれを得ることができないよう、私はそれが が[0]の代わりにvarchar型のint型であることとは何かを持っていると考えているが、私は考え....で

+0

'$のobjは[0] [ 'タイプ']'? –

+0

あなたは '$ obj-> 0-> type'を試しましたか? – rodneyrehm

+0

私はちょうど推測していますが、私は$ obj [0] ['type']と思ったでしょう - これを試しましたか? –

答えて

7

出力を持っていないあなたオブジェクトのデータをarrayとして表す質問がvar_exportによって作成されます。しかし、それによって誤解を招かないでください。それは実際にはオブジェクトです。それはあなたが書くことができるプロパティ名がすぐに好きではありませんよう、あなたの場合は

$obj->property 

プロパティが0命名されたPHPは、プレーンコードに対処するために懸命です:

オブジェクトのプロパティは、この構文によってアクセスされていますこの:

$obj->0 

は代わりに、あなたは{}にそれを囲むことで名前が何であるかをPHPパーサを伝える必要があります:

$obj->{0} 

あなたはその後、0typeプロパティにアクセスするために、さらに上のトラバースすることができます

$obj->{0}->type 

希望、これは便利です、質問が時間までの時間から来て、これはより多くの関連リンクと関連したものです。How do I access this object property?

PHPマニュアルは、これは、文書が、Variable variables entryで非常に明白ではありませんしています

可変変数を配列で使用するためには、曖昧さの問題を解決しなければなりません。つまり、$$a[1]と書くと、$a[1]を変数として使用するのか、$$aを変数として使用するのか、その変数の[1]のインデックスが必要なのかをパーサが認識する必要があります。このあいまいさを解消する構文は、最初のケースの場合は${$a[1]}、2番目の場合は${$a}[1]です。

0

あなたが試してみました:

<?php 
    if (property_exists($obj, 'type')) { 
     // Do something 
    } 
?> 
関連する問題