假设我有此'配置文件页面'代码:
<table border="1">
<tr>
<td>First Name : </td>
<td>John</td>
</tr>
<tr>
<td>Last Name : </td>
<td>Doe</td>
</tr>
<tr>
<td>Hobby : </td>
<td>Soccer</td>
</tr>
...
</table>
和这些配置文件是从数据库存储的,有些字段是可选的。例如:爱好,Yahoo Messenger ID,Twitter ID等
如何有效地显示所有可用信息?我的意思是,使用ifs ...因为当前是我正在做的事情:
<table border="1">
<tr>
<td>First Name : </td>
<td>John</td>
</tr>
<tr>
<td>Last Name : </td>
<td>Doe</td>
</tr>
<?php
if (!empty($hobby)){
echo '<tr>
<td>Hobby : </td>
<td>'.$hobby.'</td>
</tr>';}
?>
<?php
if (!empty($YahooID)){
echo '<tr>
<td>Yahoo ID : </td>
<td>'.$YahooID.'</td>
</tr>';}
?>
...
</table>
迭代您的属性(firstName,lastName ...)或列(db侧),如果设置,请在某个数组中添加键/值条目:nameofattribute,valueofatibute。
渲染html时,循环遍历此数组
echo '<tr><td>'.$key.' : '</td><td>'.$value+'</td></tr>';
或,
function renderIfSet($value, $title)
{
if ($value) return '<tr><td>$title :</td><td>$value</td></tr>';
}
您的代码变成:
<? echo renderIfSet($hobby, "Hobby") ?>
<? echo renderIfSet($YahooID, "Yahoo ID") ?>
function someAction($data) {
if (!empty($data['data'])) {
return '<tr>
<td>{$data[title]} : </td>
<td>'.$data['data'].'</td>
</tr>';
}
}
$datas = array(
array('data' => $YahooID, 'title' => 'YahooID'),
.... );
foreach($datas as $k => $v) {
echo someAction($)
}
类似的东西
创建一个函数...
function checkVal($label,$value){
if(!empty($value)){
$row .= '<td>'.$label.'</td>';
$row .= '<td>'.$value.'</td>';
}
}
调用您的功能...
checkVal('Hobby',$hobby);