我正在编写帮助函数,允许我快速构建表。我有一个名为responsive_table的函数,它接受两个参数:标题和行。这些行是动态的,是从数据库中提取的。我使用foreach循环构建一个行数组,因为某些db表行与html表的内容或顺序不匹配... html表中的某些单元格包含db列等的组合,并且可以不直接从数据库中显示。我的HTML表数组中没有显示任何行。正在显示在函数参数中声明的函数内部的任何内容。这是我的代码:
<?php
$output = responsive_table(array('<input type="checkbox" name="all">', 'Thumbnail', 'Title', 'Location', 'Author', 'Date Submitted', 'Actions'), function(){
foreach($listing_results as $listing){
$listings[] = array(
'<input type="checkbox" name="delete[]" value="'.$listing['listing_id'].'">',
'<img src="http://placehold.it/50x50" alt="Thumbnail">',
$listing['title'],
$listing['location'],
anchor('members/modify/'.$listing['member_id'], $listing['display_name']),
date($setting['date_format'], $listing['date_submitted']),
array(
array(
'title' => 'Modify Listing',
'color' => 'primary',
'href' => 'listings/modify/'.$listing['listing_id'],
'text' => '<i class="fa fa-pencil"></i>'
),
array(
'title' => 'Delete Listing',
'color' => 'danger',
'href' => 'listings/delete/'.$listing['listing_id'],
'text' => '<i class="fa fa-eraser"></i>',
'confirm' => true
)
)
);
}
return $listings;
});
echo $output;
function responsive_table($headings = array(), $rows = array(), $sortable = false){
$output = '
<div class="table-responsive">
<table data-sortable class="table">
<thead>
<tr>
';
if(count($headings) > 0){
foreach($headings as $heading){
$output .= '
<th>'.$heading.'</th>';
}
}
$output .= '
</tr>
</thead>
<tbody>';
if(count($rows) > 0){
foreach($rows as $row){
$output .= '
<tr>
<td>'.$row.'</td>
</tr>';
}
}
$output .= '
</table>
</div>';
return $output;
}
答案 0 :(得分:0)
任何有效的PHP代码都可能出现在函数内部,甚至是其他函数和类定义。你试图做的是使用匿名函数,也称为闭包。这是一个可能会帮助您解决此问题的链接PHP anonymous functions。
答案 1 :(得分:0)