「PHPの基礎 - テンプレート方式」の版間の差分

 
90行目: 90行目:
* コンポーネント指向の実装
* コンポーネント指向の実装
<br><br>
<br><br>
== 代替構文 ==
<syntaxhighlight lang="php">
// 一般的な記法
<?php
foreach($users as $user) {
    echo "<tr>";
    echo "<td>" . htmlspecialchars($user['id']) . "</td>";
    echo "<td>" . htmlspecialchars($user['name']) . "</td>";
    echo "<td>" . htmlspecialchars($user['email']) . "</td>";
    echo "</tr>";
}
?>
// 代替構文
<?php foreach($users as $user): ?>
    <tr>
      <td><?php echo htmlspecialchars($user['id']); ?></td>
      <td><?php echo htmlspecialchars($user['name']); ?></td>
      <td><?php echo htmlspecialchars($user['email']); ?></td>
    </tr>
<?php endforeach; ?>
</syntaxhighlight>
<br>
代替構文の特徴<br>
* <code>{</code> の代わりに <code>:</code> を使用
* <code>}</code> の代わりに <code>end構文名</code>を使用 (<code>endforeach</code>, <code>endif</code>, <code>endwhile</code>等)
* HTMLとPHPを混ぜて書く場合に、可読性が良い。
* 特に、テンプレートエンジンでよく使用される。
<br>
HTMLを多く含むテンプレートでは、代替構文を使用する方が構造が分かりやすくなるため、よく使用される。<br>
特にテンプレートエンジン (Laravel Blade、Smarty等) でも似た記法が採用されている。<br>
<br>
この構文は、以下に示すような制御構造でも使用できる。<br>
<syntaxhighlight lang="php">
<?php if($condition): ?>
    // HTMLなど
<?php endif; ?>
<?php while($condition): ?>
    // HTMLなど
<?php endwhile; ?>
<?php for($i = 0; $i < 10; $i++): ?>
    // HTMLなど
<?php endfor; ?>
</syntaxhighlight>
<br><br>


== レイアウトの共通化 ==
== レイアウトの共通化 ==