在将对象推入数组后,我不确定通过其原始指针更改对象的属性值的方法。
在我的父类中,有一个对象数组,将项目推入其中的函数返回原始实例。
class Parent {
public $items;
function __construct() { $items = array(); }
function addItem() {
$item = new stdClass();
$item->foo = 'foo';
$items[] = $item;
return $item;
}
}
在 Child 类中,我得到了原始实例,并且可以轻松更改其foo
属性值:
class Child extends Parent {
function newItem() {
$item_instance = $this->addItem();
$item_instance->foo = 'bar';
}
}
当我实例化 Child 类时,它的行为与预期一样,更改了父类的数组项属性值。
$my_child = new Child();
$my_child->newItem();
print $my_child->items[0]->foo; // prints 'bar'
我的问题是:我应该避免在对象被推入数组后使用原始对象指针,还是这种方法正确?