| 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> | |||
== レイアウトの共通化 == | == レイアウトの共通化 == | ||