2017-08-15 91 views
0

这是我第一次使用arrayObjects,所以也许我不明白它100%,但你能解释我如何循环它们吗? 这是我的代码通过arrayObject的PHP循环

$this->plugins = new \ArrayObject(array()); 
//just for testing... 
$this->plugins->plugin1 = "plugin1"; 
$this->plugins->plugin2 = "plugin2"; 
$this->plugins->plugin3 = "plugin3"; 

foreach ($this->plugins as $plugin){ 
    //never reached 
} 

$this->plugins->count()返回0和$this->plugins->getIterator()->valid();返回false也是如此。 我需要做什么?

+0

如果你使用创建一个简单的数组'$这个 - >插件 - > plugin1' .... –

+0

这将是解决这个问题太一种方式,但我想知道它是如何工作用ArrayObjects理解并学习它。 –

回答

2

你已经得到了远,但这是它是如何工作

// You can already have an array like this 
$array = array('Buck','Jerry','Tomas'); 

$arrayObject = new ArrayObject($array); 
// Add new element 
$arrayObject->append('Tweety'); 

// We are getting the iterator of the object 
$iterator = $arrayObject->getIterator(); 

// Simple while loop 
while ($iterator->valid()) { 
    echo $iterator->current() . "\n"; 
    $iterator->next(); 
} 

Source

+0

所以我必须使用'append'方法才能使其工作?谢谢 –

+0

@Anubarak是的!如果这解决了您的问题,请接受答案,以便它可以帮助其他人。 –

+1

那就是我要在4分钟内做的事情 - 我必须等一下:D –

0

你的代码几乎是好的,只是改变的变量初始化,这样反而plugins->plugin1 = "plugin1",把一切都变成array("plugin1", ...)上的开始。 所以

$plugins = new ArrayObject(array("plugin1", "plugin2", "plugin3")); 

foreach ($plugins as $plugin){ 
    echo $plugin . "<br>"; 
}