PHP中单引号和双引号字符串有什么区别?

  • 回答 (2)
  • 关注 (0)
  • 查看 (187)

我不是PHP编程的大佬,但有点困惑,为什么看到PHP中的一些代码,字符串放在单引号中,有时用双引号。

只是在.NET或C语言中知道,如果是单引号,那就意味着它是一个字符,而不是一个字符串。

微信资讯小编微信资讯小编提问于
帅的惊动我国计算机大神回答于

可以看下下面的例子:

$s = "dollars";
echo 'This costs a lot of $s.'; // This costs a lot of $s.
echo "This costs a lot of $s."; // This costs a lot of dollars.
死者是小智回答于

PHP字符串不仅可以以两种方式指定,而且可以以四种方式指定。

单引号的字符串将几乎完全“按原样”显示。变量和大多数转义序列不会被解释。例外是要显示一个单引号,你可以使用反斜杠转义它\',并显示一个反斜杠,你可以用另一个反斜杠\\(所以是的,即使单引号字符串解析)转义它。

双引号字符串将显示大量的转义字符(包括一些正则表达式),并且字符串中的变量将被计算。这里重要的一点是你可以使用花括号来隔离你想要评估的变量的名字。例如,假设你有这个变量$type,那么你echo "The $types are"会找那个变量$types。为了解决这个问题,echo "The {$type}s are"您可以在美元符号之前或之后放置左大括号。看看字符串解析看看如何使用数组变量等。

Heredoc字符串语法就像双引号字符串一样工作。它开始<<<。在这个操作符之后,提供一个标识符,然后是一个换行符。字符串本身遵循,然后再次相同的标识符来关闭报价。你不需要在这个语法中转义引号。

Nowdoc(自PHP 5.3.0起)的字符串语法基本上像单引号字符串一样工作。不同的是,甚至连单引号或反斜杠都不能逃脱。nowdoc用与heredocs相同的<<<序列来标识,但是后面的标识符用单引号引起来,例如<<<'EOT'。nowdoc中没有解析。

扫码关注云+社区

领取腾讯云代金券