<?php function getnews()
{
global $db;
$news=$db->query("select * from news order by news_id desc");
$row=$news->fetch_object();
return $row;
}?>
`
foreach (getnews() as $result)
{
echo $result->news_title . "<br>";
}
?>
但是foreach不能正常工作
任何帮助
答案 0 :(得分:1)
您的getnews()
函数只返回数据库中的一行,即使您的查询将全部获取它们......也许会考虑getnews()
函数中的一个循环,它依次返回每一行,也许使用生成器,以便您可以在foreach
循环中使用它们
function getnews() {
global $db;
$news=$db->query("select * from news order by news_id desc");
while ($row=$news->fetch_object()) {
yield $row;
}
}
foreach (getnews() as $result) {
echo $result->news_title . "<br>";
}
虽然使用生成器确实需要PHP&gt; = 5.5
如果您使用的是早期版本的PHP,那么在getnews()
中构建一个数组并返回该数组,但效率不高:
function getnews() {
global $db;
$news=$db->query("select * from news order by news_id desc");
$items = array();
while ($row=$news->fetch_object()) {
$items[] = $row;
}
return $items;
}
foreach (getnews() as $result) {
echo $result->news_title . "<br>";
}