【问题标题】:PHP access data of an objectPHP访问对象的数据
【发布时间】:2011-02-23 17:10:45
【问题描述】:

我有一个对象,我希望从中获取一条数据,该对象看起来像这样,

    Product Object
(
    [name] => Simon Test Cup
    [code] => 123456789
    [category_id] => 3
    [range_id] => 26
    [price] => 10.00
    [price_logo_add] => 0.25
    [image_id] => 846
    [rank] => 
    [special_offer] => N
    [cartProps] => Array
        (
        )

    [section] => 
    [vatPercentage] => 17.5
    [id] => 551
    [date_created] => 2010-05-25 12:46:57
    [last_updated] => 2010-05-25 14:10:48
    [user_id_updated] => 0
    [_aliases] => Array
        (
            [id] => 551
            [date_created] => 2010-05-25 12:46:57
            [date_updated] => 2010-05-25 14:10:48
            [user_id_updated] => 0
            [name] => Simon Test Cup
            [code] => 123456789
            [category_id] => 3
            [range_id] => 26
            [price] => 10.00
            [price_logo_add] => 0.25
            [image_id] => 846
            [range_image_id] => 848
            [main_image_id] => 847
            [rank] => 
            [special_offer] => N
        )

    [_default] => Array
        (
            [special_offer] => N
        )

    [_related] => Array
        (
            [_related] => Array
                (
                    [range] => stdClass Object
                        (
                            [key] => range
                            [group] => _related
                            [foreignKey] => range_id
                            [indexName] => id
                            [tableName] => cc_range
                            [objectName] => Range
                            [userFieldlyColName] => name
                            [criteria] => id='{%range_id%}'
                            [sqlPostfix] => 
                            [populateOnLoad] => 
                            [objects] => Array
                                (
                                    [26] => Range Object
                                        (
                                            [name] => Shot glasses
                                            [url_name] => shot-glasses
                                            [description] => Personalized shot glasses make great commemorative gifts, souvenirs and wedding favours. Just select your favourite shape and send us a customization form with your logo. See our glassware sale page for info on free logo origination.
                                            [leader] => Customized shot glasses make great commemorative gifts, promotional items and wedding favours.  Individual gift boxes are available so you can give the glasses away easily.
                                            [category_id] => 3
                                            [site_id_csv] => 
                                            [image_id_main] => 565
                                            [image_id_thumb] => 566
                                            [rank] => 
                                            [site] => main
                                            [id] => 26
                                            [date_created] => 2008-05-18 21:39:52
                                            [last_updated] => 2009-02-03 13:49:10
                                            [user_id_updated] => 0
                                            [_aliases] => Array

我想从[range] = stdClass Object获取id

【问题讨论】:

    标签: php arrays object oop


    【解决方案1】:

    如您所见,您的Product 对象具有range_id 属性:

    Product Object
    (
        [name] => Simon Test Cup
        [code] => 123456789
        [category_id] => 3
        [range_id] => 26          // <--- here!
        [price] => 10.00
        ...
    

    所以您应该能够通过以下方式获取 ID:

    $object->range_id
    

    但很可能,ProductRange 类定义了允许您访问这些信息的方法,您应该改用它们。您只需阅读文档如何使用它们。

    【讨论】:

      【解决方案2】:

      假设 Felix 的回答不起作用(它可能很好),我猜 _related 字段是受保护的。在这种情况下,该类中应该有一个访问器方法可以让您获取相关对象。请在对象上使用get_class_methods(),并使用可用的方法编辑您的帖子。

      【讨论】:

        【解决方案3】:

        可以说$object->_related["_related"]["range"],但是这个结构大概是一个对象的结构,它有你可能想要的东西的访问器。您显然不打算担心事物的内部结构。

        【讨论】:

          【解决方案4】:
          $product->_related["_related"]["range"]->key
          

          但我不确定我是否理解得很好

          【讨论】:

            猜你喜欢
            • 2012-07-01
            • 2018-11-24
            • 1970-01-01
            • 2020-05-09
            • 1970-01-01
            • 2011-11-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多