Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过arrayObject的PHP循环_Php_Loops_Arrayobject - Fatal编程技术网

通过arrayObject的PHP循环

通过arrayObject的PHP循环,php,loops,arrayobject,Php,Loops,Arrayobject,这是我第一次使用ArrayObject,所以可能我没有100%理解它,但是你能解释一下如何循环使用它们吗? 这是我的密码 $this->plugins = new \ArrayObject(array()); //just for testing... $this->plugins->plugin1 = "plugin1"; $this->plugins->plugin2 = "plugin2"; $this->plugins->plugin3 = "p

这是我第一次使用ArrayObject,所以可能我没有100%理解它,但是你能解释一下如何循环使用它们吗? 这是我的密码

$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。

我该怎么办?

你已经走得很远了,但这就是它的工作原理

// 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();
}

你已经走得很远了,但这就是它的工作原理

// 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();
}

您的代码基本正常,只需更改变量的初始化,因此在开始时将所有内容放入
数组(“plugin1”),而不是
插件->插件1=“plugin1”
。 所以

$plugins=新的ArrayObject(数组(“plugin1”、“plugin2”、“plugin3”);
foreach($plugins作为$plugin){
echo$插件。“
”; }
您的代码基本正常,只需更改变量的初始化,因此,取而代之的是
plugins->plugin1=“plugin1”
,将所有内容放入
数组(“plugin1”,…)
。 所以

$plugins=新的ArrayObject(数组(“plugin1”、“plugin2”、“plugin3”);
foreach($plugins作为$plugin){
echo$插件。“
”; }
如果您使用
$this->plugins->plugin1
创建一个简单数组会怎么样?这也是一种解决方法,但我想知道它如何与ArrayObject一起工作以理解和学习它。如果您使用
$this->plugins->plugin1
创建一个简单数组会怎么样?这也是一种解决方法,但是我想知道它是如何与ArrayObject一起工作的,以便理解和学习它。所以我必须使用
append
方法才能使它工作?感谢you@Anubarak对如果这解决了你的问题,请接受答案,这样它也能帮助其他人。这就是我在4分钟内要做的-我必须稍等一下:D@Anubak仅当您要向对象添加内容时,才使用
append
。如果你想遍历一个对象,你根本不需要使用
append
,所以我必须使用
append
方法才能让它工作?感谢you@Anubarak对如果这解决了你的问题,请接受答案,这样它也能帮助其他人。这就是我在4分钟内要做的-我必须稍等一下:D@Anubak仅当您要向对象添加内容时,才使用
append
。如果要遍历对象,根本不需要使用
append