PHP函数:从循环返回数据


PHP Function: Return data from loop

我想用一个函数从我的数据库动态加载我的新闻提要在我的网站上,我已经创建了一个函数变量的类型的帖子,从一个特定的用户等,我想运行一个while()循环返回每一个帖子,你通常会,这怎么能在一个函数内完成?我试着运行循环并设置我想要在单个变量中显示的内容,然后在该循环中返回,我希望它每次都会在循环中运行一个返回,函数会一个接一个地返回,当我从逻辑上考虑它时,这显然不会发生,所以有人能解释一下这将如何实现?

示例(类似)代码:

访问函数:

<?php echo getNews(); ?>

功能:

<?php function getNews(){
//query stuff
while($row = mysql_fetch_array($result)){
     $return = "Looped data";
     return $return;
}
?>

返回停止函数执行。你可以试试

function getNews(){
    $html = null;
    //query stuff
    while($row = mysql_fetch_array($result)){
         $return = "Looped data";
         $html .= $return;
    }
    return $html;
}

应该在循环外使用

Try this function

<?php function getNews()
{
   $return =array()
   while($row = mysql_fetch_array($result))
   {
     $return[] = "Looped data";
   }
   return $return;
}
?>

对于第一个return,函数中断,因此只获取第一行。您可以将数据临时保存在数组中并返回它。当echo时,你可以然后implode()它。

function getNews(){
    //query stuff
    $result = array();
    while($row = mysql_fetch_array($result)){
         $result[] = "looped data";
    }
    return $result;
}
echo implode("<br>'n", getNews());

返回一个数组在将来会更有用。在我看来,函数名也更具描述性。没有concat/etc,只有get。

不能在每次循环时都使用function返回。或者,您可以将在循环中创建的结果保存到变量或数组中,并返回变量/数组。使用变量的例子是:

<?php function getNews() {
    //query stuff
    $return = "";
    while($row = mysql_fetch_array($result)) {
        $return .= "Looped data";    
    }
    return $return;
}
?> 

如果您的目的只是echo的结果比做它在函数本身不使用变量。

如果你想处理一些带有结果的东西,数组会更好。