基本的foreach循环问题

时间:2009-11-17 20:20:12

标签: php foreach

感谢您的帮助:

foreach loops & stdclass objects

我设置了一个foreach循环,但问题是有时结果是:

  

警告:提供的参数无效   foreach()in   /家/我的帐户/的public_html /的   第81行的script.php

我认为,当没有什么东西可以填补foreach循环的时候,却害怕当确实有一个条目时会发生这种情况。

我的问题是:当只有一个条目时,foreach循环会做什么?

6 个答案:

答案 0 :(得分:4)

foreach仅适用于数组,因此您需要将该元素包装在数组中。

  

从PHP 5开始,也可以迭代对象。   http://php.net/manual/en/control-structures.foreach.php

要了解有关迭代对象的详细信息,请参阅:http://www.php.net/manual/en/language.oop5.iterations.php

答案 1 :(得分:3)

PHP5 can iterate over an object中的

foreach或数组。

我发布此信息是为了平衡那些告诉您无法使用对象的内容。

正如其他答案所涵盖的那样,如果您的数据将在foreach中进行迭代,则每次都必须包含相同的数据。总是一个数组(即使它只是一个元素),或者总是一个对象(即使它只是一个方法)。

答案 2 :(得分:2)

像oremj一样,你需要一个阵列。如果你有时有一个数组,有时只有一个东西,你可以把它投射到一个数组,以确保你每次都使用数组。将它投射到数组后,一件事就是数组('一件事')。然后你可以循环它,循环将以“一件事”开始和结束。

编辑:正如其他人指出的那样也可以循环对象。

答案 3 :(得分:1)

foreach可以在只包含1个元素的数组上正常工作。试试这个例子:

$foodlist = array("burrito");

foreach ($foodlist as $food) {
  echo $food . "\n";
}

答案 4 :(得分:0)

一个例子:

<?php

$array = array(1, 2, 3, 4, 5);
foreach ($array as $value) {
    echo $value."<br />";
}

?>

答案 5 :(得分:0)

试试这个:

// Make sure array is an array
if (!$array) $array = array();
if (!is_array($array)) $array = array($array);

foreach ($array as $value) {
    echo $value."<br />";
}