感谢您的帮助:
foreach loops & stdclass objects
我设置了一个foreach循环,但问题是有时结果是:
警告:提供的参数无效 foreach()in /家/我的帐户/的public_html /的 第81行的script.php
我认为,当没有什么东西可以填补foreach循环的时候,却害怕当确实有一个条目时会发生这种情况。
我的问题是:当只有一个条目时,foreach循环会做什么?
答案 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)
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 />";
}