函数返回并回显

时间:2014-05-24 13:01:49

标签: php

这是我向用户显示角色的功能" php"在database.Problem中,如果我在函数中使用echo,在html页面中一切正常。 如果我改变了#echo;#34;到"返回"并输入HTML我只得到第一行。

Echo示例:

function showMembersPhp($mysqli)
{ 
    $statement = $mysqli->query("SELECT * FROM members");
    while($row = $statement->fetch_array()){
    if ($row['role'] == 'php') {
      echo '<tr class="odd gradeX">
                <td>'.$row['username'].'</td>
                <td>'.$row['email'].'</td>
                <td>'.$row['last_online'].'</td>
                <td class="center">'.$row['last_ip'].'</td>
            </tr>';  
        }                                                
    }
}

返回示例:

function showMembersPhp($mysqli)
{ 
    $statement = $mysqli->query("SELECT * FROM members");
    while($row = $statement->fetch_array()){
    if ($row['role'] == 'php') {
      return '<tr class="odd gradeX">
                <td>'.$row['username'].'</td>
                <td>'.$row['email'].'</td>
                <td>'.$row['last_online'].'</td>
                <td class="center">'.$row['last_ip'].'</td>
            </tr>';  
        }                                                
    }
}

2 个答案:

答案 0 :(得分:2)

使用这样的局部变量,然后在迭代整个数组后返回它:

function showMembersPhp($mysqli)
{ 
    $ret = "";
    $statement = $mysqli->query("SELECT * FROM members");
    while($row = $statement->fetch_array()){
    if ($row['role'] == 'php') {
      $ret = $ret. '<tr class="odd gradeX">
                <td>'.$row['username'].'</td>
                <td>'.$row['email'].'</td>
                <td>'.$row['last_online'].'</td>
                <td class="center">'.$row['last_ip'].'</td>
            </tr>';  
        }                                                
    }
    return $ret;
}

答案 1 :(得分:1)

当您返回值时,您将退出该功能。也就是说,退出循环。这就是为什么你只得到一行。