2017-08-15 14 views
0

私がarrayObjectを扱うのは初めてのことなので、100%理解できなかったかもしれませんが、ループ処理の方法を教えてください。 これは、同様にfalseを返しますPHPループスルーarrayObject

$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();私のコードです。 私は何をしなければなりませんか?

+0

.... –

+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

あなたのコードではほぼOK、唯一の変数の初期化を変更するので、代わりにplugins->plugin1 = "plugin1"、初めにarray("plugin1", ...)にすべてをかけます。 ですから、単純な配列を作成した場合、 `ます$ this-> plugins-> plugin1`使って何

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

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