为foreach提供的参数无效!

时间:2010-07-05 16:18:16

标签: foreach php

  

可能重复:
  Invalid argument supplied for foreach()

我有以下代码:

<?
foreach($format as $form)
{
    echo $form;
    ?>
    <ul>
        <?
        $s = $database->onlineFormatUsers($form);
        while($row=mysql_fetch_assoc($s))
        {
            $username=$row['username'];
            $id=$row['id'];?>
            <li><a href="../userprofile.php?id=<?echo $id?>"><?echo "$username";?></a></li>
        <?
        }
        ?>
    </ul>
    <?
}
?>

<? 
//the active formats
$f = $database->activeFormats();
while($row=mysql_fetch_assoc($f))
{
    $format=$row['name'];
}
?>

它说这是一个无效的论点? 有什么理由吗? 感谢

3 个答案:

答案 0 :(得分:3)

$format可能不是数组。

foreach块包裹在if(is_array($format)) { }块中,或通过$format = (array)$format将其强制转换为数组。

答案 1 :(得分:0)

你确定$ format是一个数组吗?放一个

<?php echo gettype($format); ?>
在foreach循环之前

答案 2 :(得分:0)

$ format不是数组或不存在! 在foreach之前

if(is_array($format)){  
   foreach($format ...
}