PHP: 基本语法

PHP 的语法借鉴了 C、Java 和 Perl,如果你学过任何一门编程语言,你会觉得 PHP 很眼熟。如果你没学过——没关系,这节课就是你的起点。

1. PHP 标签

PHP 代码必须写在 PHP 标签里面,服务器才能识别和执行它。

(1) 标准写法(推荐)

PHP
<?php
// 这里是 PHP 代码
echo "Hello World";
?>

(2) 短标签(echo 专用)

PHP
<?= "Hello World" ?>  <!-- 等价于 <?php echo "Hello World"; ?> -->

<?= ?><?php echo ... ?> 的简写,在 PHP 5.4 之后总是可用。在 HTML 中嵌入变量时特别方便:

PHP
<h1>欢迎,<?= $username ?></h1>
⚠️ 注意: 历史上还有 <? ?> 短标签(不带 php),但这个写法依赖 php.ini 中 short_open_tag 配置,在不同服务器上可能失效。永远用 <?php 标准标签。

(3) 文件末尾的 ?> 可以省略

如果文件是纯 PHP 代码(不含 HTML),推荐不写结尾的 ?>

PHP
<?php
// 纯 PHP 文件,不写 ?>
echo "Done";

// 文件结束,没有 ?>

为什么?避免 ?> 后面的意外空白输出干扰 HTTP 头。


2. PHP 与 HTML 混写

PHP 最独特的地方:可以在同一个文件里自由混合 HTML 和 PHP:

▶ 示例:PHP 嵌入 HTML

PHP
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>我的网站</title>
</head>
<body>
    <h1><?= "欢迎来访" ?></h1>
    <p>现在时间是:<?= date("H:i:s") ?></p>
    
    <?php
    $isLogin = true;
    if ($isLogin):
    ?>
        <p>✅ 您已登录</p>
    <?php else: ?>
        <p>❌ 请先登录</p>
    <?php endif; ?>
</body>
</html>
▶ 试一试
💡 提示: PHP 有两种混写 HTML 的风格。简洁输出用 <?= ?>;大段逻辑用 <?php ... ?> 包起来。控制结构的替代语法(if (): ... endif;)比用 {} 更好读。


3. 语句与分号

PHP 中每条语句必须以分号 ; 结尾:

PHP
<?php
echo "第一行";
echo "第二行";
$name = "PHP";
?>

规则:

🔥 易错: 忘记写分号是最常见的 PHP 初学错误。报错信息通常是 Parse error: syntax error, unexpected ... ,看到它先检查分号。


4. 大小写敏感规则

PHP 中不同东西的大小写规则不同,这一点容易混淆:

类型 大小写敏感? 示例
变量名 ✅ 敏感 $name$Name$NAME
常量名 ✅ 敏感 MY_CONSTmy_const
函数名 ❌ 不敏感 echo() = ECHO() = Echo()
类名/方法名 ❌ 不敏感 MyClass = myclass
关键字 ❌ 不敏感 if = IF = If

▶ 示例:变量区分大小写

PHP
<?php
$color = "红色";
$Color = "蓝色";
$COLOR = "绿色";

echo $color;  // 输出:红色
echo $Color;  // 输出:蓝色
echo $COLOR;  // 输出:绿色
?>
▶ 试一试
💡 提示: 虽然函数名和关键字不区分大小写,但坚持用小写是最佳实践。代码一致性比灵活性重要。


5. 注释

PHP 支持三种注释风格:

PHP
<?php
// 这是单行注释(C++ 风格)

# 这也是单行注释(Shell 风格)

/*
 * 这是多行注释
 * 可以跨越多行
 * 和 C 语言一样
 */

/**
 * 这是文档注释
 * 用来给函数、类写说明
 * @param string $name 用户名
 * @return string 问候语
 */
function greet($name) {
    return "你好," . $name;
}
?>
风格 写法 说明
双斜线 // 注释 最常用,推荐
井号 # 注释 Shell 风格,少用
斜线星号 /* */ 多行注释
文档注释 /** */ 写函数/类的 API 文档
💡 提示: 注释不要写废话。// 给 $a 赋值 1 这种一看就懂的代码不需要注释。注释应该解释"为什么这样做",而不是"做了什么事"。


6. echo 与 print

echoprint 都是 PHP 的输出语句,它们很相似但有细微区别:

echo print
能输出多个 echo "a","b","c"; ❌ 只能一个
返回值 ❌ 无返回值 ✅ 总返回 1
速度 快一点点 慢一点点
使用比例 95% 用 echo 极少使用

▶ 示例:echo 输出

PHP
<?php
// 输出字符串
echo "Hello World";

// 输出多个(逗号分隔)
echo "我", "叫", "小明";  // 输出:我叫小明

// 输出 HTML 标签
echo "<h2>这是一级标题</h2>";

// 输出变量
$name = "Alice";
echo "Hello, " . $name;  // Hello, Alice

// 双引号内直接解析变量
echo "Hello, $name";      // Hello, Alice
?>
▶ 试一试
💡 提示: 永远用 echo。除非你在一个必须接收返回值的上下文中(极其罕见),否则不需要 print


7. 转义字符

在字符串中使用反斜线 \ 来表示特殊字符:

转义序列 含义
\n 换行符
\r 回车符
\t 制表符(Tab)
\\ 反斜线本身
\$ 美元符号(避免被当作变量)
\" 双引号

▶ 示例:转义字符

PHP
<?php
echo "第一行\n第二行\n第三行";
// 浏览器中换行要用 <br>
echo "第一行<br>第二行<br>第三行";

echo "他说:\"PHP 很简单!\"";
echo "路径是 C:\\xampp\\htdocs";
echo "价格是 \$100";
?>
▶ 试一试
⚠️ 注意: \n 在 HTML 中不会产生可见换行(浏览器忽略纯文本换行)。要在网页中换行,用 <br> 标签加上 CSS 样式。\n 在查看 HTML 源代码时才有换行效果。

❓ 常见问题

Q 为什么我的 .php 文件在浏览器中直接显示了源代码,而不是执行结果?
A 你可能是双击打开了 .php 文件(用 file:/// 协议),或者服务器没有安装/启用 PHP。必须通过 http://localhost/ 访问 PHP 文件。
Q <?php<?= 有什么区别?
A <?php 是完整的 PHP 标签,里面写任何 PHP 代码。<?= ?><?php echo ... ?> 的简写,只能用来输出一个表达式。
Q echo 后面可以同时输出数字和字符串吗?
A 可以。PHP 会自动类型转换。echo 42 . " is the answer"; 输出 "42 is the answer",数字 42 被自动转为字符串。

📖 小节

📝 作业

  1. 创建一个 PHP 页面,包含你的名字(用变量)、当前日期(用 date 函数)、以及一段 HTML 表格,全部用 echo 输出。
  2. 在同一个文件里试试 //#/* */ 三种注释,确认它们都能正常工作。
  3. 写一个包含 \n<br> 的对比示例,理解它们在浏览器中的区别。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏