无法用foreach提供无效参数吗?
问题描述:
请别人帮忙我对PHP很新,所以请耐心等待。无法用foreach提供无效参数吗?
使用下面的代码链接到网站;
我基本上从一个网站复制代码(http://www.elated.com/articles/cms-in-an-afternoon-php-mysql/),并试图实现到我自己的网站项目。
这里的问题是代码....
<ul id="headlines">
<?php foreach ($results['articles'] as $article) { ?>
<li>
<h2>
<span class="pubDate"><?php echo date('j F', $article->publicationDate)?></span>
<a href=".?action=viewArticle&articleId=<?php echo $article->id?>"><?php echo htmlspecialchars($article->title)?></a>
</h2>
<p class="summary"><?php echo htmlspecialchars($article->summary)?></p>
</li>
<?php } ?>
</ul>
<p><a href="./?action=archive">Article Archive</a></p>
这是我的错误消息:
警告:)/应用程序提供的foreach(无效的参数/ XAMPP/xamppfiles/htdocs中/news/homepage.php on line 3
答
$results['articles']
不是数组。你应该把它要么设置为空数组或跳过foreach
循环时,它不是一个数组 - 空,字符串,数字等
<ul id="headlines">
<?php if (!$results['articles']) $results['articles'] = array(); ?>
<?php foreach ($results['articles'] as $article) { ?>
<li>
<h2>
<span class="pubDate"><?php echo date('j F', $article->publicationDate)?></span>
<a href=".?action=viewArticle&articleId=<?php echo $article->id?>"><?php echo htmlspecialchars($article->title)?></a>
</h2>
<p class="summary"><?php echo htmlspecialchars($article->summary)?></p>
</li>
<?php } ?>
</ul>
<p><a href="./?action=archive">Article Archive</a></p>
这仅仅是一个快速修复。但是,当你有一个空的$results['articles']
这可能意味着你的代码有错误,这会填充该数组,或者你没有符合条件的文章=)
答
“问题”代码与无关问题。
$ results ['articles']不是数组 - 就这些。你必须验证$ results ['articles']被分配的代码,以找出问题所在。
很可能你的数据库中没有数据或类似的东西。
你可以通过foreach代码和数组正在初始化的代码吗? – 2012-01-06 17:13:35
那么,'$ results ['articles']是否存在,如果是,它的价值是什么?如果您是PHP新手,您可能需要阅读['foreach'文档](http://php.net/manual/en/control-structures.foreach.php)。一般来说,只是复制和粘贴代码而不理解它并不是特别有希望的。如果你是新手,你应该先学习这门语言,然后使用它。 – 2012-01-06 17:14:24
那么,你在哪里使用foreach循环?请给出该代码..这是重要的片段。 – darnir 2012-01-06 17:14:39