多次使用PHP函数,但只在函数内显示一次

时间:2014-02-24 23:14:29

标签: php

我有一个PHP函数,用于从数据库中选择和返回数据,我想多次运行此函数并只显示一个表标题,

例如

<table>
<tr>
    <td>Heading 1</td>
    <td>Heading 2</td>
</tr>
</table>
<?php MyFunctionName($var1,$var2,$var3,$var4); ?>

但我希望表标题在函数内部,这可能吗?

3 个答案:

答案 0 :(得分:3)

尝试静态变量:

function MyFunctionName($args...) {
    static $is_first_run = true;
    if( $is_first_run) {
        // do stuff
        $is_first_run = false;
    }
}

答案 1 :(得分:0)

您可以向函数添加一个额外的可选布尔参数,该参数确定是否应该打印标题。在第一次调用时,您将true作为最后一个参数,否则您只需省略它。

function MyFunctionName(var1,var2,var3,var4,showHeading = false) {
    if(showHeading) {
        // show the heading
    }
    // do the other code
}

第一个电话: MyFunctionName(var1,var2,var3,var4,true);

其他电话: MyFunctionName(var1,var2,var3,var4);

编辑:抱歉,为时已晚。

答案 2 :(得分:0)

尝试重新格式化您的功能。

<?    
function MyFunctionName(){
 $Q = mysql_query("SELECT * FROM mytable");
$results ='';
$header = '';
$headerBuilt = false;
while($r = mysql_fetch_assoc($q)){
    $results .= '<tr>';
    foreach($r AS $i => $v){
        if(!$headerBuilt){
            $header .= '<td>'.$i.'</td>';
        }
        $results .= '<td>'.$v.'</td>';
    }
    $results .= '</tr>';
    $headerBuilt = true;
}
$table = '<table><tr>'.$header.'</tr>'.$results.'</table>';
return($table);
}  
?>

未经测试