2

配列が 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>';
  } ?>

また、テーブル フッターを追加するために別のテストを実行したくありません。

4

3 に答える 3

2

私はあなたが何を望んでいるのかわかると思います...私はすべてのHTMLを別のファイルに置き、条件付きでそれを含めます。

if(!empty($users)) {
  include "users_table.template";
}

必要に応じて、テンプレート ファイルに php を含めることができることに注意してください。

于 2012-07-05T23:11:09.520 に答える
1

PHPコードをHTMLレンダリングから分離するには、テンプレートシステムまたはその他の手段を使用することをお勧めします。

私が知っているすべてのテンプレートシステムでは、ブール値に応じてブロックをスキップできます。そのため、ページテンプレートに(のテンプレート)テーブルを含め、選択したフレームワークがifまたはrepeat n times構造として使用するもので囲みます。

于 2012-07-05T23:10:46.217 に答える
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; ?>
于 2012-07-05T23:36:46.100 に答える