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

时间:2011-07-18 21:13:33

标签: php

我刚刚开始学习PHP,我正在使用 PHP for the Web:Visual Quickstart Guide第4版,我对本书中学到的脚本提出了一个问题并且刚刚写了。

这是脚本的代码:

     print '<p>Thank you, ' .$title.$name. ' for your comments.</p>
    <p>You stated that you found this example to be "'.$response.'" and added:<br />'
    .$comments.'</p>';

    print "<p>Thank you, $title $name for your comments.</p><p>You stated that you found this example to be '$response' and added:<br/>$comments</p>";

此脚本只显示通过POST提取的HTML表单中的一些数据。

这样做的正确方法是什么?在这种情况下,我在理解' vs "方面遇到了很多麻烦。

第二个例子是本书的第一个例子,第一个例子是我在尝试理解'vs'问题后发现如何做的一个例子。关于这个,在哪里找到关于{的信息的好位置{1}} vs '

4 个答案:

答案 0 :(得分:2)

在PHP中,双引号字符串中的变量将替换为其值。单引号字符串不会发生这种情况。

例如:

$make = 'Nisaan';
$model = 'Altima';

echo 'I drive a $make $model.'; // I drive a $make $model.
echo "I drive a $make $model."; // I drive a Nissan Altima.

您还可以使用连接运算符.来使用字符串中变量的值:

echo 'I drive a '.$make.' '.$model.'.'; // I drive a Nissan Altima.

有关PHP字符串的更多信息,请查看PHP文档:http://php.net/manual/en/language.types.string.php

答案 1 :(得分:2)

PHP解析器会对双引号字符串解析变量和转义字符,例如\n

$x = 10;
echo "$x dollars"; // Outputs: 10 dollars

单引号字符串不会被解析,所以:

$x = 10;
echo '$x dollars'; // Outputs: $x dollars

并输出10 dollars您需要进行字符串连接:

$x = 10;
echo $x.' dollars';

在字符串中解析变量会占用更多内存,并且比字符串连接需要更多时间。所以单引号几乎总是更好的方式。即使差异很小。

答案 2 :(得分:0)

双引号用于解析字符串中的变量。如果您使用"Hi, $name",它会正确地将变量解析为Hi, AlexBeau。如果您使用'Hi, $name',则会输出Hi, $name

如果您询问使用.来连接字符串的情况,那么这并不重要。只要按照我之前提到的规则使用它。

单引号应该更快,因为没有解析。

答案 3 :(得分:-2)

你在哪里看到“vs”?它只是意味着“对比” - 与。相比。

两个示例之间的区别在于第一个使用单引号和字符串连接(将字符串相互添加),第二个使用双引号和插值(从环境中获取变量以直接插入单个字符串)。