我有一个PHP函数,用于从数据库中选择和返回数据,我想多次运行此函数并只显示一个表标题,
例如
<table>
<tr>
<td>Heading 1</td>
<td>Heading 2</td>
</tr>
</table>
<?php MyFunctionName($var1,$var2,$var3,$var4); ?>
但我希望表标题在函数内部,这可能吗?
答案 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);
}
?>
未经测试