如果数组在PHP中不为null,那么显示表的最佳方法是什么?

时间:2012-07-05 23:05:20

标签: php

如果数组不为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>';
  } ?>

而且,不想再做一个测试来添加表格页脚。

3 个答案:

答案 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; ?>