1

JSON ファイルからデータを呼び出しています。私の要素の1つは次のとおりです。

"mainImg_select":""

これには値がある場合もあれば、ない場合もあります。この場合は空です。この (および他の) 変数を Product というオブジェクトに入れます。

を設定しようとすると$product -> mainImg、JSON 値が空かどうかを確認しようとしています。空の場合は、別の画像セットの最初の値を取得し、$more_imgsそれをメイン画像にしたいと考えています。これが私のコードです:

if(!is_null($mainImg)) {
    $product->mainImage = $html->find($mainImg, 0)->src;
    for ($idx = 0; $idx < 10; $idx++) {
        $more = $html->find($more_imgs, $idx);
        if (!is_null($more)) {
            $product->moreImages[$idx] = $more->src;
        } else {
            return;
        }
    }
} else {
    for ($idx = 0; $idx < 10; $idx++) {
        $more = $html->find($more_imgs, $idx);
        if (($idx == 0) && (!is_null($more))) {
            $product->mainImage = $more->src;
        } elseif (!is_null($more)) {
            $product->moreImages[$idx] = $more->src;
        } else {
            return;
        }
    }
}

コードを実行するNotice: Trying to get property of non-objectと、$product->mainImage = $html->find($mainImg, 0)->src;

if(!is_null($mainImg))$mainImg は JSON で定義されているように null であるべきであるため、これは上記と関係があると思います。そうでない場合、ここで使用するのに最適なものは何ですか?

編集: Product オブジェクトが設定されている場合の詳細なコードは次のとおりです: http://pastebin.com/EEUgpwgn

4

2 に答える 2

1

「mainImg_select」が空の文字列「」に等しい場合でも false を返すように変更する必要があります!is_null!emptyis_null()

于 2013-05-16T08:45:22.923 に答える
1

$mainImgHTML に が見つからないかどうか。コード$html->find($mainImg, 0)が戻り、オブジェクトのパラメーターnullにアクセスしようとします。srcnull

( php simple HTML Parser Library のドキュメントから:

// Find (N)th anchor, returns element object or null if not found (zero based)
$ret = $html->find('a', 0);

)

これを行う必要があります:

if (null !== ($img = $html->find($mainImg, 0))) {
   $imgSrc = $img->src; // Here the HTML Element exists and you can access to the src parameter
}
于 2013-05-16T08:43:13.650 に答える