代码之家  ›  专栏  ›  技术社区  ›  Ali Yar Khan

用PHP解析stdclass对象字符串

  •  -1
  • Ali Yar Khan  · 技术社区  · 6 年前

    我有一个stdclass对象的字符串数组,但无法正确解析该字符串

    我尝试过各种方法,但都给出了“获取非对象属性”的相同错误。

    foreach($response->Product->$x as $prod)
    {
    print $prod->Name;
    print $prod->Price;
    print $prod->Stock;
    print $prod->SupplierName;
    print $prod->CategoryName;
    $x++;
    }
    

    //但响应的字符串是

    stdClass Object ( 
    [Product] => Array 
    ( [0] => stdClass Object
    ( [Id] => 2 [Name] => Green Shirt [Price] => 1800 [Stock] => 50 [SupplierName] => Ali Yar [CategoryName] => Jeans )
      [1] => stdClass Object
      ( [Id] => 7 [Name] => Red Shirt with Flowers [Price] => 2200 [Stock] => 40 [SupplierName] => Ali Yar [CategoryName] => Shirt )
      [2] => stdClass Object
      ( [Id] => 8 [Name] => Red Shirt with Flowers [Price] => 2200 [Stock] => 40 [SupplierName] => Ali Yar [CategoryName] => Shirt ) 
      [3] => stdClass Object
      ( [Id] => 9 [Name] => Check Shirt Yellow [Price] => 1100 [Stock] => 200 [SupplierName] => Ali Yar [CategoryName] => Shirt 
      )
     )
     ) 
    

    我在尝试获取为foreach()提供的非对象和无效参数的属性时遇到这些错误。

    2 回复  |  直到 6 年前
        1
  •  1
  •   u_mulder    6 年前

    AS Product 属性是数组,然后:

    foreach($response->Product as $prod)
    {
    
        print $prod->Name;
        print $prod->Price;
        print $prod->Stock;
        print $prod->SupplierName;
        print $prod->CategoryName;
    
        // this increment is useless
        //$x++;
    
    }
    
        2
  •  1
  •   Luigi di Massa    6 年前

    您的代码不清楚,但我认为您必须编辑 foreach 在这

    foreach($response->Product as $prod)
    {
    print $prod->Name;
    print $prod->Price;
    print $prod->Stock;
    print $prod->SupplierName;
    print $prod->CategoryName;
    $x++;
    }