-2

我有疑问。这是我的 foreach 循环

<table>
<?php foreach($this->msg as $l): ?>
 <tr><td>
 <a href="index.php/downloads?id=<?php echo $l->id;?>"><?php echo $l->name;?></a>
 </td></tr>
 <?php endforeach; ?>
  </table>

其中 $this->msg 是来自 db 的结果数组。这显示警告

Warning: Invalid argument supplied for foreach() 

我应该如何解决这个问题?

4

3 回答 3

0

如果你不确定你通过了什么,foreach那么我建议你先检查使用is_array函数。像这样的东西:

if (is_array($message)) {

foreach ($message as $text) {
//do something

 }
}

使用var_exportorvar_dump来检查你传递给 foreach 循环的内容。

于 2013-10-21T05:34:16.160 回答
0

答案是:

if(empty($this->msg)){
}
else{
<table>
<?php foreach($this->msg as $l): ?>
<tr><td>
<a href="index.php/downloads?id=<?php echo $l->id;?>"><?php echo $l->name;?></a>
</td></tr>
<?php endforeach; ?>
 </table>
}
于 2013-10-21T05:49:32.747 回答
0

尝试这个:

First check output from $this->msg.
If it is array type && not empty then and then you can pass to the foreach loop.

You can check array using is_array() function
&&
You can check array is empty using empty() function.

- 谢谢

于 2013-10-21T06:33:51.677 回答