PHP单引号和双引号的区别

在 PHP 中,一个字符串可以由双引号" "包围,也可以由单引号' '包围,但是两者有一些差别:

  • 使用双引号定义的字符串可以解析其中的变量和一些转义字符。
  • 使用单引号定义的字符串中需要转义的特殊字符只有反斜杠和单引号本身,并且不能识别其中插入的变量。

使用单引号定义的字符串虽然没有双引号灵活,但是它的解析速度快,视觉上也比较直观。

单引号定义字符串

我们使用一个例子来演示单引号定义字符串:

<?php
echo 'I do not love \\ you';  //注意此处只输出一个反斜杠
echo 'I don\'t love you';  //转义单引号
echo 'Hi,do you love me ';
$a = 'hello';
echo '$a world';  //不解析变量 $a 的值
?>

执行以上代码的输出结果为:

I do not love \ youI don't love youHi,do you love me $a world

双引号定义字符串

使用双引号定义的字符串除了可以解析其中的变量,还能解析一些转义字符,如表所示。

双引号能够解析的转义字符
转义字符 说明 转义字符 说明
\n 换行符 \\ 反斜杠
\r 回车符 \$ 美元符号
\t 制表符 \" 双引号

双引号字符串示例如下:

<?php
echo "I don't love\ you\\";  //注意此处输出两个反斜杠
echo "It takes me \$10.25 \t";   //转义美元符号和制表符
$name = 'lily';
echo "I love \"$name\",this gift take me $10.25";  //依然会打印美元符号
?>

以上代码的执行结果为:

I don't love\ you\It takes me $10.25 I love "lily",this gift take me $10.25

PHP, 学海无涯