如果数组不为null(并且其中包含值),那么我想显示该表 但如果它为null,那么我根本不想显示任何表格代码。
使用向页面附加页脚的MVC框架。
避免类似声明的最佳方法是什么:
<?php
if ($users) {
echo '<table id="tha_table" cellpadding="0" cellspacing="0" width="100%">
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>';
} ?>
而且,不想再做一个测试来添加表格页脚。
答案 0 :(得分:2)
我想我看到你的意思...... 我会将所有HTML放在一个单独的文件中,并有条件地包含它。
if(!empty($users)) {
include "users_table.template";
}
请注意,如果您需要,模板文件可以包含php。
答案 1 :(得分:1)
我建议您使用模板系统或任何其他工具将PHP代码与HTML呈现分开。
我知道的所有模板系统都允许根据布尔值跳过一个块,因此您只需在页面模板中包含(模板)表格,并将其包含在您选择的框架用作{{{ 1}}或if
构建。
答案 2 :(得分:1)
我总是使用empty()来检查数组是否为空。 Empty也将检查变量是否为null。请注意,如果未设置数组变量,则empty()不会发出警告,这可能是也可能不是。
<?php
$displayUserTable = !empty($users);
?>
<?php if($displayUserTable): ?>
<table id="tha_table" cellpadding="0" cellspacing="0" width="100%">
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<?php foreach($users as $user): ?>
<tr>
<td><?php echo htmlspecialchars($user['firstName']); ?></td>
<td><?php echo htmlspecialchars($user['lastName']); ?></td>
<td><?php echo htmlspecialchars($user['emailAddress']); ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
<?php if($displayUserTable): ?>
<!-- show footer here... -->
<?php endif; ?>