![](/img/trans.png)
[英]What is the difference between single-quoted and double-quoted strings in 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.