以下是 PHP 与 HTML 混合编程的典型示例,通过不同场景展示其灵活性和实际应用:
示例1:条件渲染导航菜单
<!-- 用户登录状态判断 -->
<?php $isLoggedIn = true; ?>
<nav>
<a href="/">首页</a>
<?php if ($isLoggedIn) { ?>
<!-- 仅登录用户可见 -->
<a href="/profile">个人中心</a>
<a href="/logout">退出</a>
<?php } else { ?>
<a href="/login">登录</a>
<?php } ?>
</nav>功能:根据 $isLoggedIn 变量动态显示不同导航链接。
示例2:循环输出商品列表
<!-- 从数据库获取商品数据 -->
<?php $products = [
['name' => '手机', 'price' => 2999],
['name' => '耳机', 'price' => 399]
]; ?>
<ul>
<?php foreach ($products as $product) { ?>
<li>
<?= htmlspecialchars($product['name']) ?>
- ¥<?= number_format($product['price'], 2) ?>
</li>
<?php } ?>
</ul>功能:遍历数组生成 HTML 列表,<?= ?> 是 <?php echo ?> 的简写。
示例3:表单处理与回显
<!-- 处理表单提交 -->
<?php
$username = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = htmlspecialchars($_POST['username'] ?? '');
}
?>
<form method="post">
<input type="text" name="username"
value="<?= $username ?>" placeholder="输入用户名">
<button type="submit">提交</button>
</form>
<?php if ($username): ?>
<p>欢迎, <?= $username ?>!</p>
<?php endif; ?>功能:表单提交后保留输入值并显示欢迎语,防止 XSS 攻击。
示例4:模板布局分离
<!-- header.php --> <!DOCTYPE html> <html> <head> <title><?= $title ?? '默认标题' ?></title> </head> <body> <!-- page.php --> <?php include 'header.php'; ?> <main> <?php if ($page === 'home'): ?> <h1>欢迎访问</h1> <?php endif; ?> </main> <?php include 'footer.php'; ?>
功能:通过 include 拆分重复布局,动态设置页面标题。
关键特点总结
逻辑与视图分离
PHP 处理数据,HTML 专注展示,提升可维护性。动态内容控制
通过if/foreach等结构实现条件渲染和循环输出。简写语法优化
<?=替代<?php echo,:替代{}使代码更简洁。安全注意事项
始终用htmlspecialchars()转义用户输入,防止 XSS。
混合编程时,建议将复杂逻辑封装到函数或类中,仅在模板中保留简单输出逻辑。