PHP访问对象的属性

时间:2010-06-29 09:41:38

标签: php arrays object multidimensional-array

通过print_r

输出时,我有一个看起来像这样的对象
   Array
     (
         [178] => My_Model_Category Object
        (
            [autoGenerateURLNameIfNotSupplied] => 1
            [id] => 178
            [name] => Just for Kids
            [date_created] => 2010-04-06 16:08:40
            [last_updated] => 2010-06-29 10:29:50
            [user_id_updated] => 0
            [_table] => 
            [_aliases] => Array
                (
                    [id] => 178
                    [name] => Just for Kids
                    [date_created] => 2010-04-06 16:08:40
                    [date_updated] => 2010-06-29 10:29:50
                    [user_id_updated] => 0
                    [parent_id] => 
                    [url_name] => just-for-kids
                    [description] => 
                    [image_id] => 
                    [image_id_teaser] => 109
                    [cat_usage] => recipes
                    [rank] => 
                    [note] => 
                )

            [_nonDBAliases] => Array
                (
                )

            [_default] => Array
                (
                )

            [_related] => Array
                (
                    [_related] => Array
                        (
                            [image] => stdClass Object
                                (
                                    [key] => image
                                    [group] => _related
                                    [foreignKey] => image_id_teaser
                                    [indexName] => id
                                    [tableName] => jm_asset
                                    [objectName] => Common_Model_Asset
                                    [userFieldlyColName] => name
                                    [criteria] => id='{%image_id_teaser%}'
                                    [sqlPostfix] => ORDER BY rank ASC
                                    [populateOnLoad] => 1
                                    [objects] => Array
                                        (
                                            [109] => Common_Model_Asset Object
                                                (
                                                    [id] => 109
                                                    [name] => 
                                                    [date_created] => 2010-03-29 15:07:25
                                                    [last_updated] => 2010-03-29 15:07:25
                                                    [user_id_updated] => 0
                                                    [_table] => 
                                                    [_aliases] => Array
                                                        (
                                                            [id] => 109
                                                            [name] => 
                                                            [date_created] => 2010-03-29 15:07:25
                                                            [date_updated] => 2010-03-29 15:07:25
                                                            [user_id_updated] => 0
                                                            [asset_usage] => 
                                                            [url] => /x/img/dyn/recipe/my-recipe-26-image.jpg
                                                            [type] => recipe_image
                                                            **[filename] => my-recipe-26-image.jpg**
                                                            [fileext] => .jpg
                                                            [filesize] => 
                                                            [width] => 250
                                                            [height] => 250
                                                            [scale] => 
                                                            [rank] => 
                                                            [note] => 
                                                        )   


 )

我正在尝试访问图像文件名(请参阅已加星标的条目),我目前试过这个无效,

print_r($this->recipeCategories->_related->_related->images);

3 个答案:

答案 0 :(得分:1)

$this->recipeCategories->_related['_related']['image']

或(很难说出你发布的内容究竟是什么):

$this->recipeCategories[178]->_related['_related']['image']

_related是一个数组,您不能像对象一样访问它。只需仔细按照您在print_r输出中看到的内容即可。如果显示Object,则需要访问->的孩子,如果他们说Array,请使用[]

答案 1 :(得分:1)

它是数组和对象的混合体。要获取objects对象的image属性,请使用

尝试

 print_r($this->recipeCategories[178]->related["_related"]["image"]->objects);

答案 2 :(得分:0)

尝试重新组织你的代码以使用getter和setter,你的内部结构是一团糟,它只会随着时间变得更加混乱。 http://www.php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.members

相关问题