迭代在PHP中的东西

时间:2014-06-19 23:21:01

标签: php arrays loops object

我有一个名为$ 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中的值,但是为了纠正语法来执行此操作我感到困惑......

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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

然后代替当前的foreach循环,执行:

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