我不是 PHP 编程方面的专家,但是我有点困惑为什么我看到一些 PHP 代码的字符串放在单引号中,有时放在双引号中。
我只是知道。 NET,或 c 语言,如果它是单引号,这意味着它是一个字符,而不是字符串。
$n = 1;
echo '$n的值是:' . "$n"; -- $n的值是:1
不仅可以通过两种方式指定PHP strings,还可以通过四种方式指定。
1. 单引号字符串
几乎完全按照原样展示 变量和大多数转义序列将不会被解释。 例外的情况是,要显示单引号,可以用反斜杠\'对其进行转义,你可以转义它与另一个反斜杠\ (所以,是的,即使是单引号的字符串也会被解析).
2. 双引号字符串
将显示大量转义字符(包括一些正则表达式) ,并计算字符串中的变量。 这里有一点很重要可以使用花括号来隔离要求值的变量的名称. 例如,假设你有一个变量$type你该怎么做echo "The $types are" 这将寻找变量$types . 为了避免这种使用echo "The {$type}s are" 你可以把左大括号放在美元符号之前或之后。
3. Heredoc
字符串语法像双引号字符串一样工作。它开始于<<<。 在这个操作符之后,提供了一个标识符,然后是换行符。字符串本身紧随其后,然后再次使用相同的标识符来关闭引号。在这种语法中,不需要转义引号
4. nowdoc诺多克
( PHP 5.3.0后有的)字符串语法的工作原理基本上类似于单引号字符串。 区别在于,即使是单引号或反斜杠也不需要转义。一个 nowdoc 被认为是相同的<<< 但是后面的标识符用单引号括起来,例如:<<<'EOT'。 在 nowdoc 中不进行解析
用双引号而不是单引号来计算:
$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.