foreach和这在php显示警告

时间:2013-10-21 05:20:56

标签: php foreach

我有疑问。这是我的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-&gt; msg是db的结果数组。这显示警告

Warning: Invalid argument supplied for foreach() 

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

3 个答案:

答案 0 :(得分:0)

如果您不确定通过foreach的内容,我建议您先使用is_array功能进行检查。像这样:

if (is_array($message)) {

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

 }
}

使用var_exportvar_dump来检查您传递到foreach循环的内容。

答案 1 :(得分: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>
}

答案 2 :(得分: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.

- 感谢