PHP 零基础教程

PHP 标签

PHP 代码必须嵌入在特定的标签内,才能被 PHP 引擎正确识别和处理。这些标签向 Web 服务器发出信号,指示其将标签包围的内容作为 PHP 脚本解析,而不是普通的 HTML 或其他客户端代码。

本章将详细探索标准 PHP 标签、已弃用的短开始标签,以及现代开发中常用的 Echo 短标签。

1. 标准 PHP 标签

打开和关闭 PHP 代码块最常见且最受推荐的方式,就是使用标准标签:<?php?>。所有的 PHP 代码都必须放置在这两个标签之间。标签之外的任何内容都会被视为纯文本(通常是 HTML)。

<!DOCTYPE html>
<html>
<head>
    <title>标准 PHP 标签示例</title>
</head>
<body>
    <h1>欢迎!</h1>
    <?php
        // 这是一个标准的 PHP 代码块
        echo "<p>这段内容是由 PHP 使用标准标签生成的。</p>";
        $name = "Alice";
        echo "<p>你好," . $name . "!</p>";
    ?>
    <p>这是纯 HTML 内容。</p>
    <?php
        // 另一个 PHP 代码块
        echo "<p>你可以在单个页面上使用多个 PHP 代码块。</p>";
    ?>
</body>
</html>

在上面的示例中,位于 <?php ... ?> 代码块内的 echo 语句会被服务器处理,并且它们的输出结果(HTML 段落)会被发送到浏览器。随后,浏览器将渲染出最终的 HTML 文档。

使用标准标签在所有的 PHP 配置中都能获得普遍支持,并且这被认为是编写 PHP 代码的最佳实践。它确保了代码具备最大的兼容性和可读性,尤其是在团队协作或将应用程序部署到不同服务器时。

2. 短开始标签(已弃用)

短开始标签(Short Opening Tags),通常也被称为“短标签”,是一种更加简短的打开 PHP 代码块的方式:<??>。虽然它们看起来更简单,但在现代 PHP 开发中极其不推荐使用,并且目前已经被标记为弃用 (Deprecated)

<!DOCTYPE html>
<html>
<head>
    <title>短标签示例(请避免使用)</title>
</head>
<body>
    <h1>短标签演示</h1>
    <?
        // 这是一个短开始标签代码块
        // 它可能无法在所有的服务器配置上运行
        echo "<p>这段文本使用了短开始标签。</p>";
        $framework = "Laravel";
        echo "<p>我最喜欢的 PHP 框架是:" . $framework . "</p>";
    ?>
    <p>这是常规的 HTML 内容。</p>
</body>
</html>

那么使用 <? ... ?> 的脚本将无法正确执行。此时,<? 这部分代码可能会被当作纯文本处理,导致页面报错或在浏览器中输出意料之外的内容。

另一个问题是,它存在与 XML 声明(同样使用 <?xml ... ?>)冲突的潜在风险。这种歧义会导致解析器对代码产生误解,尤其是在混合使用 XML 和 PHP 的环境中。基于这些原因,开发者应当始终如一地使用标准的 <?php 标签,以避免兼容性问题并确保代码的健壮性。

3. Echo 短标签(现代且推荐)

Echo 短标签(Echo Short Tag),也叫“短输出标签”或“简写 echo”,是一种便捷且强烈推荐的向浏览器快速输出值的方式。它采用 <?= 表达式 ?> 的语法。这种写法完全等同于 <?php echo 表达式; ?>

<!DOCTYPE html>
<html>
<head>
    <title>Echo 短标签示例</title>
</head>
<body>
    <h1>Echo 短标签</h1>
    <?php
        $productName = "智能手表";
        $price = 199.99;
    ?>
    <p>产品名称:<?= $productName ?></p>
    <p>价格:$<?= $price ?></p>
    <p>当前年份:<?= date("Y") ?></p>
    <p>
        <?php
            // 下面这行等同于上方的 <?= $productName ? >
            echo "产品名称(使用标准 echo):" . $productName;
        ?>
    </p>
</body>
</html>

与短开始标签 <? 不同,Echo 短标签 <?=PHP 5.4.0 及以上版本中始终默认可用,无论 php.ini 中的 short_open_tag 如何设置。这使得它成为一种安全、现代的特性,非常适合快速将动态内容嵌入到 HTML 模板中,能显著减少代码的冗长感。

在模板环境中,当你需要频繁地在 HTML 内部直接显示变量或函数返回值时,它尤为好用。

4. 实用对比

特性语法依赖 short_open_tag状态使用场景
标准标签<?php ... ?>推荐所有常规的 PHP 代码逻辑和执行
短开始标签<? ... ?>是(必须开启)已弃用避免使用(存在潜在的兼容性问题)
Echo 短标签<?= 表达式 ?>否(自 PHP 5.4.0 起)推荐快速输出变量或表达式的结果

在创建 PHP 文件时,只要涉及逻辑处理、变量声明或复杂操作的代码块,请始终以 <?php 开头。如果仅仅是为了显示一个变量或一个简单表达式的结果,<?= ... ?> 则是最干净、高效的选择。