PHP变量名必须以$开头且后跟字母或下划线;区分大小写、不支持数字开头和短横线;弱类型但赋值定类型,禁用保留字与可变变量$$。

PHP 变量名必须以 $ 开头,且后面紧跟字母或下划线
这是最常被忽略的硬性规则。不写 $ 就不是变量,而是常量或未定义符号,PHP 会直接报错 Notice: Undefined variable 或解析失败。比如 name = "Alice" 是非法语法,必须写成 $name = "Alice"。
合法示例:$count、$_id、$user_name;非法示例:123var(数字开头)、$user-name(含短横线)、myVar(缺 $)。
$ 后不能跟空格或中文,但支持 UTF-8 字母(需 PHP 7.0+ 且文件编码为 UTF-8)
虽然 PHP 允许用中文变量名(如 $姓名 = "张三"),但实际项目中几乎没人这么用——IDE 支持差、协作困难、容易因编码不一致出错。初学者应严格使用英文+下划线组合。
常见陷阱:
立即学习“PHP免费学习笔记(深入)”;
- 复制粘贴时带全角空格或不可见字符,导致
$ name看似像变量,实则报错Parse error: syntax error - 文件保存为 GBK 编码却写了中文变量,PHP 解析失败
- 用连字符
-替代下划线_,如$first-name→ 实际被解析为$first - name(减法运算)
变量是弱类型的,但赋值决定其初始类型,且大小写敏感
$age = 25 是整型,$age = "25" 就变成字符串。PHP 不需要声明类型,但类型会影响运算结果:比如 $a = "10"; $b = 2; echo $a + $b; 输出 12(自动转整型),而 echo $a . $b; 输出 "102"(字符串拼接)。
大小写敏感这点极易踩坑:
$Name = "Alice"; echo $name; // Notice: Undefined variable: name echo $Name; // 正确输出 Alice
函数内变量默认不共享全局作用域,$ 本身不表示“全局”,只是语法必需符号。
避免用 $$ 可变变量和保留字作变量名
$$ 是可变变量语法,比如 $a = "hello"; $$a = "world"; 等价于 $hello = "world"。它难读、难调试、易引发意外覆盖,初学者应完全避开。
也不能用 PHP 保留字当变量名,例如:$class、$function、$echo —— 虽然某些版本不报错,但属于未定义行为,不同 PHP 版本兼容性极差。
判断是否为保留字最简单的方法:在 IDE 中看是否高亮为关键字,或查官方文档的 reserved keywords 列表。
真正该花时间记住的只有三条:必须有 $、不能数字开头、严格区分大小写。其余都是干扰项。











