【问题标题】:iterating over things in php [duplicate]迭代php中的东西[重复]
【发布时间】:2014-06-19 23:21:00
【问题描述】:

我有一个名为 $options 的数组。 我想遍历它的内容,所以我这样做:

 foreach($options as $option){   
    print_r( $option);
 }

结果输出给了我一个像这样开始的对象/数组 heffalump...

Mage_Bundle_Model_Option Object
(
    [_defaultSelection:protected] => 
    [_eventPrefix:protected] => core_abstract
    [_eventObject:protected] => object
    [_resourceName:protected] => bundle/option
    [_isObjectNew:protected] => 
    [_data:protected] => Array
        (
            [option_id] => 20
            [parent_id] => 291

我想引用 _data 中的值,但我很难用正确的语法来做到这一点......

【问题讨论】:

标签: php arrays loops object


【解决方案1】:

没有从通用代码访问它们的语法。 Mage_Bundle_Model_Option 类已将其属性声明为protected,这意味着只能从该类、其后代或祖先访问它们。您应该使用类的公共方法来使用它,而不是直接访问属性。

【讨论】:

    【解决方案2】:

    因为 _data 对象被设置为protected,它只能从Mage_Bundle_Model_Option 类内部或从它扩展的类中访问。

    所以你要做的就是在 Mage_Bundle_Model_Option 中添加一个方法

    function getData(){
     return $this->_data;
    }
    

    然后代替当前的 foreach 循环,执行以下操作:

    foreach($options->getData() as $option) {
       //do things
    }
    

    【讨论】:

      猜你喜欢
      • 2012-06-16
      • 2011-09-12
      • 2012-07-21
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      • 2019-04-25
      • 1970-01-01
      • 2020-01-27
      相关资源
      最近更新 更多