代码之家  ›  专栏  ›  技术社区  ›  Ben Guthrie

按索引号(而不是名称)返回PHP对象

  •  10
  • Ben Guthrie  · 技术社区  · 16 年前

    目标:通过数字从PHP对象中检索数据元素。

    这是对象的打印($data):

    stdClass Object
    (
        [0] => stdClass Object
            (
                [TheKey] => 1456
                [ThingName] => Malibu
                [ThingID] => 7037
                [MemberOf] => California
                [ListID] => 7035
                [UserID] => 157
                [UserName] => John Doe
            )
    )
    

    我不知道如何从中提取价值。这只是多记录对象的一个记录,应该按id而不是按名称。

    以下是一些失败的尝试,以说明目标是什么:

    echo $data -> 0 -> UserName;
    echo $data[0] -> UserName;
    
    5 回复  |  直到 16 年前
        1
  •  35
  •   BoltClock    16 年前

    $data stdClass ArrayAccess 它只是一个普通的基类。

    但是,在这种情况下,您可以尝试通过其数字名称访问对象属性,如下所示:

    echo $data->{'0'}->UserName;
    

    foreach 迭代对象。

        2
  •  8
  •   orrd    11 年前

    BoltClock建议使用“$data->{0'}->UserName”显然不再适用于php5。

    我也遇到了同样的问题,我发现current()可以像这样得到编号的class元素。。。

    echo current($data)->UserName;
    

    echo current(current($data))->UserName;
    
        3
  •  4
  •   Pageii Studio    12 年前

    echo $data[0]->UserName;
    

    或

    foreach ($data as $data){
        echo $data->UserName;
        }
    

    current($data)->UserName works great too.
    
        4
  •  3
  •   Spudley Pat    16 年前

    你试过吗 foreach() 它返回的密钥可能会给您一个更好的线索,告诉您如何直接访问它们。

        5
  •  0
  •   pixeline    16 年前

    试试这个:

    echo $data[0]['UserName'];
    

    on this page

    推荐文章