PHP,单引号或双引号中哪个更快? [复制]

     2023-02-24     15

关键词:

【中文标题】PHP,单引号或双引号中哪个更快? [复制]【英文标题】:What is faster in PHP, single or double quotes? [duplicate] 【发布时间】:2011-06-19 18:07:19 【问题描述】:

可能重复:Is there a performance benefit single quote vs double quote in php?

单引号或双引号哪个更快,为什么?

另外,使用这两种方法有什么好处?

【问题讨论】:

没关系,哪个更快 “To go fast, do less.” 这个问题是在没有适当研究的情况下匆忙提出的,也没有解释我的问题背后的原因。它很旧,似乎正在吸引负面因素。要求删除问题是否合适,或者我是否应该放弃它并接受我问的问题很糟糕的事实? 由于有人对您的问题表示赞同,因此 很难将其删除。 【参考方案1】:

我会说单引号更快,因为它们不需要 Shift ;)

不同的引号对变量输出和转义字符有影响。单引号内的内容按原样处理,不解释转义字符和变量。双引号解释变量值并转义特殊字符,如换行符 (\n)。

【讨论】:

+0 表示好答案,+1 表示换档键。 不,只有一个很好的老式普通美国英语键盘。我也喜欢单引号不移位【参考方案2】:

您是否每秒处理 1000 条字符串?如果没有,你真的不应该太担心。

如果要使用字符串插值(使用变量、数学等),请使用双引号

你也应该努力保持一致。

我们应该忘记小的效率,比如大约 97% 的时间:过早优化是万恶之源。

Donald Knuth

【讨论】:

“你也应该努力保持一致”... +1 为那个花絮。 为了保持一致,我经常编写像 'i have ' 这样的代码。 $计数。 '事物' 。 “\n” .. 但这似乎比“我有 $count 个东西\n”更混乱。我想这并不重要,只要你以后能读到就行了。【参考方案3】:

取决于你想做什么。我刚刚做了一些基准测试并用 5 个测试用例测试了字符串赋值:双引号 + 变量、双引号、双引号和字符串追加、单引号和带字符串追加的单引号。

我的测试代码。一百万个循环。字符串赋值。

<?php

$start = microtime(true);

$str = "";

for($i = 0; $i<1000000; $i++)

        $str = "hello $i";


$end = microtime(true);

echo $end - $start;

结果:

没有变量的单引号和双引号字符串同样快。 (每个都在 0.08 左右回响)。 带有变量连接的单引号和双引号字符串大致相同,但比没有变量要慢。 (每个都在 0.17-.20 左右回响) 字符串中带有变量的双引号最慢(大约 .20-.25)

所以单/双并不重要,但似乎字符串连接比变量替换更快。

【讨论】:

【参考方案4】:

查看字符串@phpbench 的双引号 (") 和单引号 (') 的性能比较。

结论:“在今天的 PHP 版本中,这个论点似乎在两边都得到了满足。让大家和谐地团结起来吧!

【讨论】:

+1。我不得不听另外两个开发人员告诉我使用单引号对性能如此重要。我编写了自己的基准测试脚本,向他们展示了它实际上是多么微不足道。我的意思是,微秒......来吧。很高兴也有这个参考。 @sberry2A 你和 Marcin 的 php 板凳一样错了。与其编写自己的基准测试脚本,不如对代码进行分析,然后找出对性能真正很重要的问题。这种语言真的很受业余开发者的困扰。【参考方案5】:

至于速度,唯一的正确答案是根本不用担心。时期。 差异,即使你找到一个,根本不重要。要关心速度,人们应该了解整个画面,而不是它的一个像素。使您的应用程序更快、更高效是一项伟大而复杂的任务。但这不能通过问“哪个更快”的问题来完成。 如果您真的对此感到担忧,请从了解 profiling 是什么开始。

至于优点,手册页解释是最好的学习地点:http://php.net/types.string 不过,这并不是真正的优势,而是用例。

【讨论】:

我同意抢先式优化通常很糟糕,并且单引号和双引号字符串之间的速度差异非常小。但在正确的情况下,即使是很小的差异也会产生影响,我想你忘记了一些提出这个问题的人可能会面临这样的情况。【参考方案6】:

如果不需要处理其中的文本,那么单个更快。

【讨论】:

我不知道为什么这被否决了。这是对所提出问题的唯一实际正确回答。其他所有答案都说“没关系”,虽然这是真的,但不能回答问题。 另外请记住,这个答案可能引用了 PHP 5.2,其中性能差异更加明显。在 > 5.3 中,在大多数情况下,我们所说的时差不到百分之一。【参考方案7】:

单引号通常更快,并且所有引用的内容都被视为纯字符串,

喜欢

echo 'anyting else ? $something';
>> anything else? $something

PHP 不会使用额外的处理来解释单引号内的内容

但是,与双引号相比,PHP 将替换 $something 将其分配的值

$something = 'yup';
echo "anyting else ? $something";
>> anything else ? yup

【讨论】:

即使是单引号中的字符串也需要一些解释...带有 ' 或 \ 的字符串,即使在单引号中,也需要解释以正确处理这些字符...并且没有速度明显不同。 在给出这个答案时可能是这种情况,但今天单引号和双引号在性能方面的差异可以忽略不计,除非您在循环中处理数百万个字符串。

变量连接的单引号或双引号? [关闭]

】变量连接的单引号或双引号?[关闭]【英文标题】:Singlequotesordoublequotesforvariableconcatenation?[closed]【发布时间】:2011-03-1923:11:54【问题描述】:像这样将一个变量(比如$name)连接到一个现有的字符串(比如$string)中更好吗:$s... 查看详情

在 Python 中用单引号或双引号提取字符串

】在Python中用单引号或双引号提取字符串【英文标题】:ExtractingstringsinPythonineithersingleordoublequotes【发布时间】:2013-11-0915:26:24【问题描述】:我需要Python正则表达式的帮助来提取单引号或双引号内的字符串。我找到了一个解决... 查看详情

使用带单引号或双引号的 strlen

】使用带单引号或双引号的strlen【英文标题】:Usinstrlenwithsinglequoteordoublequote【发布时间】:2018-05-0320:30:58【问题描述】:如果有人能告诉我如何计算出单引号和双引号中strlen的值,我将不胜感激?echostrlen(\'l\\n2\');//4回声strlen("l... 查看详情

用其他东西替换或删除新行,但只能在 CSV 文件上使用 PHP 的单引号或双引号之间

...其他东西替换或删除新行,但只能在CSV文件上使用PHP的单引号或双引号之间【英文标题】:ReplacingorRemovinganewlinewithsomethingelsebutonlybetweensingleordoublequotesusingPHPonaCSVfile【发布时间】:2010-09-1606:28:15【问题描述】:我有一个CSV文件,... 查看详情

需要正则表达式用单引号或双引号解析关键字='值'

】需要正则表达式用单引号或双引号解析关键字=\\\'值\\\'【英文标题】:Needregextoparsekeyword=\'value\'withsingleordoublequotes需要正则表达式用单引号或双引号解析关键字=\'值\'【发布时间】:2010-11-0100:27:00【问题描述】:我在编写一个... 查看详情

groovy中单引号或双引号内的字符串有啥区别?

】groovy中单引号或双引号内的字符串有啥区别?【英文标题】:What\'sthedifferenceofstringswithinsingleordoublequotesingroovy?groovy中单引号或双引号内的字符串有什么区别?【发布时间】:2011-10-0908:14:08【问题描述】:defa="astring"defb=\'another\... 查看详情

正则表达式 - 单引号或双引号 -C#

】正则表达式-单引号或双引号-C#【英文标题】:Regex-SinglequotesORDoublequotes-C#【发布时间】:2016-04-1820:04:54【问题描述】:如何更改:Regex.Match(value,@"href=\\""(.*?)\\""",RegexOptions.Singleline);这样它将选择href=\'foobar\'(单引号\')以及选择hre... 查看详情

jQuery中的单引号或双引号[重复]

】jQuery中的单引号或双引号[重复]【英文标题】:SingleorDoublequotesinjQuery[duplicate]【发布时间】:2011-10-2501:45:36【问题描述】:可能重复:WhentoUseDoubleorSingleQuotesinJavaScript这是专门针对jQuery而不是一般的JavaScript,因为我不是JavaScript... 查看详情

浅谈php中单引号和双引号到底有什么区别呢?

参考技术A在PHP中,字符串的定义可以使用英文单引号'',也可以使用英文双引号""。但是必须使用同一种单或双引号来定义字符串,如:'HelloWorld"和"HelloWorld'为非法的字符串定义。单引号和双引号到底... 查看详情

单引号 (') 和双引号 (") 在 jQuery 中是不是像在 PHP 中一样工作?

】单引号(\\\')和双引号(")在jQuery中是不是像在PHP中一样工作?【英文标题】:Dothesinglequote(\')anddoublequote(")workinjQueryliketheydoinPHP?单引号(\')和双引号(")在jQuery中是否像在PHP中一样工作?【发布时间】:2016-03-2511:22:01【问... 查看详情

Perl eval EXPR 用单引号或双引号括起来

】PerlevalEXPR用单引号或双引号括起来【英文标题】:PerlevalEXPRenclosedbysinlgeordoublequotes【发布时间】:2016-09-2914:57:14【问题描述】:我可以从perldoc-feval看到以下内容:evalEXPRevalBLOCKevalInthefirstform,thereturnvalueofEXPRisparsedandexecutedasifitwe... 查看详情

如何在 CSS 中转义单引号或双引号?

】如何在CSS中转义单引号或双引号?【英文标题】:HowcanIescapesingleordoublequotationmarksinCSS?【发布时间】:2011-07-2216:01:12【问题描述】:我有以下HTML代码:<divid="working">TouchMe!</div><divid="notworking">Don\'tTouchMe!</div>我... 查看详情

PHP输出单引号和双引号作为输入元素的值

】PHP输出单引号和双引号作为输入元素的值【英文标题】:PHPtooutputsingleanddoublequotesasavalueforaninputelement【发布时间】:2013-06-0712:20:32【问题描述】:我有一个值($title)存储在MySQL中,并且正在使用PHP调用,以插入到输入元素的值... 查看详情

在任何情况下,由于我们有模板文字(反引号),javascript仍需要单引号或双引号吗?

随着JavaScript的templateliterals的引入,与https://ponyfoo.com/articles/template-literals-strictly-better-strings中提到的单引号和双引号相比,它具有很多优势。[在性能方面,它们之间没有明显差异,如https://medium.com/javascript-in-plain-english/are-back 查看详情

python单个正则表达式,用于解析python单引号或双引号字符串,同时保留任何转义的引号字符(代码片段)

查看详情

php单引号中可以包含双引号吗

php单引号和双引号的区别:双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。例如:$foo=2;echo"foois$foo";//打印结果:foois2echo\'foois$foo\';//打印结果:foois$fooecho"foois$foo\\n";//打印结果:foois2(同时换行)echo... 查看详情

比较中单引号和双引号的意义是啥? [复制]

】比较中单引号和双引号的意义是啥?[复制]【英文标题】:Whatisthesignificanceofsinglequotesvsdoublequotesincomparisons?[duplicate]比较中单引号和双引号的意义是什么?[复制]【发布时间】:2012-02-0417:30:03【问题描述】:这会返回一个错误:... 查看详情

php单引号双引号

...;,'$_GET[sex]','$_GET[age]')"$_GET[]为什么不加单引号不能用啊?单引号不是直接输入吗?参考技术A不一定需要加单引号或双引号,它是根据你数据库结构来确定的,比如说你的name是字符串类型的,age是整数类型的,那... 查看详情