PHP单引号与双引号的区别

3

我想知道单引号的区别:

$this->db->select('card_code, card_color');

与双引号:

$this->db->select("card_code, card_color");

我知道如果我使用双引号,就可以在字符串中放置变量,就像这样:

$this->db->select("$card_code_var, $card_color_var");

使用单引号时,这是不起作用的。而且,在使用英语或其他口语的情况下,有时需要使用撇号,就像这里一样。

$this->setPhrase("The cat's tail is black");

我理解到这里了。

我在网上看到许多官方指南和文档,他们使用单引号表示字符串。 难道不应该使用单引号表示单个字符,而使用双引号表示字符串吗?

$var_char = 'A';
$var_string = "A fox";

如果我使用单引号(比如上面的第一段代码),而不是双引号,程序会自动进行更改吗?


2
单引号比双引号更快,因为如果字符串被双引号(")包围,PHP将解释更多的转义序列以表示特殊字符。请参考:http://php.net/types.string - Prashant Kanse
3
“单引号用于单个字符,双引号用于字符串”吗?不是的。这不是C++。PHP在字符串中使用两种引号类型。 - 425nesp
1
@PrashantKanse 技术上“更快”,但在实际使用中几乎没有什么区别。 - Giacomo1968
我发现这个经验法则很实用,除非你有包含引号的情况需要特别处理:对于可读性强的字符串(如文本短语、需要翻译的内容),我使用双引号;对于技术标识符,我使用单引号。 - arkascha
1
谢谢大家。@mrun,我不明白你的评论有什么帮助,而且你的问题是反问的。如果我已经弄清楚了,我就不会问这个问题了。此外,我不明白“时间”和“从业多年”如何成为解决问题的方法。我并不“更懂”,学习某些东西的第一道障碍就是认为自己已经对它了解得非常透彻。我确实知道很多东西,但我觉得我永远不会停止学习,即使是一些小细节也能产生巨大的影响,这就是我提出问题的原因。如果这是一个“双重问题”的问题,那我向大家道歉。 - Mr.Web
显示剩余2条评论
1个回答

1

我可以提供的一个有用的额外信息是速度 - 如果使用双引号"",PHP将在每个字符串中搜索变量。这通常不是日常编程中的问题,但如果您有一个特定的大型脚本,性能真的很重要,优化它可能会带来一些回报。


2
根据这条评论,单引号并不一定总是更快的。http://php.net/manual/en/language.types.string.php#120160 - billrichards

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接