如何访问受保护的数组值?

Posted

技术标签:

【中文标题】如何访问受保护的数组值?【英文标题】:how to access protected array values ? 【发布时间】:2016-03-26 12:12:09 【问题描述】:

您好,我有这个数组,但我不确定如何从中获取名称、品牌、图像、令牌值?

Gloudemans\Shoppingcart\CartCollection Object
(
  [items:protected] => Array
     (
          [1264477c2182cc04a63fde1186741fa7] =>       Gloudemans\Shoppingcart\CartRowCollection Object
            (
                [associatedModel:protected] => 
                [associatedModelNamespace:protected] => 
                [items:protected] => Array
                    (
                        [rowid] => 1264477c2182cc04a63fde1186741fa7
                        [id] => 1
                        [name] => washington apples
                        [qty] => 1
                        [price] => 90
                        [options] => Gloudemans\Shoppingcart\CartRowOptionsCollection Object
                            (
                                [items:protected] => Array
                                    (
                                        [brand] => awesome apple
                                        [image] => C:\xampp\htdocs\srsgrocery\storage/app/products/1/apple-06.jpg
                                        [token] => WiQgUjqgHEB3HZ2ImJ6iPQWHnm246twFD3Uyk6AH
                                    )

                            )

                        [subtotal] => 90
                    )

            )

    )

)

我正在使用名为 laravel 的 php 框架。 请帮忙。

【问题讨论】:

【参考方案1】:

将对象保存在变量中并执行foreach循环,

foreach($cart as $item) 
    echo $item->name;
    echo $item->options->brand;

如果这不起作用,您可以使用 collection 类中的 fetch 方法。

http://laravel.com/api/5.0/Illuminate/Support/Collection.html#method_fetch

$item->fetch('name');

而你正在使用的包有一个替代方法search

$item->search('name');
$item->search(['options' => 'name'])

https://github.com/Crinsane/LaravelShoppingcart/blob/master/src/Gloudemans/Shoppingcart/CartRowOptionsCollection.php

【讨论】:

以上是关于如何访问受保护的数组值?的主要内容,如果未能解决你的问题,请参考以下文章

在PHP中访问数组中的受保护对象

如何在 C# 中访问受保护的方法

从对象内部的数组中获取数组键(受保护)值(来自 RTM-php 的响应)?

如何在 Vuejs 中测试受保护的路由保护的访问?

Python中的“受保护”访问 - 如何?

如何影响派生类中受保护的基变量