一、字符串的双引号和单引号
- 单引号(’ ‘):不解析变量,里面的
$变量名会被当作普通文本原样输出。 - 双引号(” “):会解析变量,将变量的值替换进去;同时会解析更多转义字符。
- 代码示例:
$age = 18;
$str1 = '她今年$age岁'; // 单引号:不解析
$str2 = "她今年$age岁"; // 双引号:解析变量
echo $str1, "<br/>", $str2;
// 输出:她今年$age岁 <换行> 她今年18岁Code language: PHP (php)
二、 性能差异与推荐
- 单引号更快:因为不需要解析内部变量,PHP 处理单引号字符串效率更高。
- 实操推荐:纯字符串用单引号,需要拼接变量时用双引号(或用
.连接单引号,性能最佳)。
三、 转义字符支持对比
| 特性 | 单引号(’ ‘) | 双引号(” “) |
|---|---|---|
| 变量解析 | 不解析(原样输出) | 解析变量(如 $age) |
| 转义字符 | 仅支持 \'(单引号)和 \\(反斜杠) | 支持 \"、\'、\\,以及 \n(换行)、\t(制表符)等 |
| 其他字符 | 如 \t\r\n 会原样输出 | 会尝试转义(如换行生效) |
| 嵌套引号 | 单内双无需转义,单内单需 \' | 双内单无需转义,双内双需 \" |
- 图中要点:使用反斜杠
\` 转义;单引号仅认\和‘`,其余“原样输出”;双引号支持更多转义。
四、 综合代码与历史呼应
结合前几节(分号、echo、变量):
<?php
$name = '张肥';
// 单引号:纯文本,不解析变量,不转义\n
echo '姓名:$name,换行\n无效<br/>';
// 输出:姓名:$name,换行\n无效
// 双引号:解析变量,转义\n(在HTML中换行需<br/>,源码中\n生效)
echo "姓名:$name,换行\n生效<br/>";
// 输出:姓名:张肥,换行(源码换行)生效
// 最佳实践(性能+清晰):用 . 拼接单引号
echo '姓名:' . $name . ',推荐写法<br/>';
?>Code language: HTML, XML (xml)
呼应前文:延续 echo 多变量输出、分号结尾;字符串内可嵌 HTML(如 <br/>)呼应混合 HTML 特性。
Previous: 变量的传值
Next: 控制结构if else