繁体   English   中英

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

[英]What are difference between single quoted and double quoted strings in PHP?

我刚刚开始学习 PHP,我正在使用PHP 来编写 Web:视觉快速入门指南第 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 " 问题后发现的。关于这一点,哪里是查找有关' vs "信息的好地方。

在 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.

For more on PHP strings, check the PHP docs: http://php.net/manual/en/language.types.string.php

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

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

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

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

和 output 10 dollars ,你需要做字符串连接:

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

解析字符串中的变量使用更多的 memory 并且比字符串连接花费更多时间。 所以单引号几乎总是 go 的更好方法。 尽管差别很小。

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

如果您询问使用. 连接字符串,这并不重要。 只需按照我前面提到的规则使用它。

不过,单引号应该更快,因为没有进行解析。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM