5

print_r($p->attachments)生成:

Array
(
    [0] => stdClass Object
        (
            [id] => ...
            [url] => http://...png
            [slug] => ...
            [title] => ...
            [description] => ...
            [caption] => ...
            [parent] => ...
            [mime_type] => image/png
            [images] => ...
                (
                )
        )
)

urlフィールドの値にアクセスしたい

print_r($p->attachments[0]->url)URL を取得しますが、以下も生成します。Undefined offset: 0

を呼び出すことprint_r(@$p->attachments[0]->url)でエラーを抑制できるようになりましたが、これを修正する適切な方法はありますか?

$p オブジェクトを変更できません。

編集:

示唆されているように、Var_dump($p->attachments) からの応答は次のとおりです。

 array(1) {
  [0]=>
  object(stdClass)#322 (9) {
    ["id"]=>
    int(1814)
    ["url"]=>
    string(76) "..."
    ["slug"]=>
    string(34) "..."
    ["title"]=>
    string(34) "..."
    ["description"]=>
    string(0) ""
    ["caption"]=>
    string(53) "..."
    ["parent"]=>
    int(1811)
    ["mime_type"]=>
    string(9) "image/png"
    ["images"]=>
    array(0) {
    }
  }
}
4

2 に答える 2

15

isset() を使用して配列をチェックできます。

if(isset($p->attachments[0])){
    echo $p->attachments[0]->url;
}
else {
  //some error?
}

または、インデックス 0 のみをチェックすることがわかっている場合は、この方法で実行できます

$array = $array + array(null);

したがって、元の $array[0] が設定されていなかった場合、現在は null です

于 2013-09-18T19:28:13.690 に答える
0

値が返され、未定義のオフセット 0 があることが通知される理由がわかりません。

これを確認できますか(添付ファイルは配列であるため、そのようにする必要があります):

if ( count($p->attachments) > 0 ){ 
   foreach ($p->attachments AS $att){
    //do the stuff if attachement 
   }
}
于 2013-09-18T19:42:04.730 に答える