【问题标题】:Proper usage of double and single quotes?正确使用双引号和单引号?
【发布时间】:2011-01-26 13:09:31
【问题描述】:

我在这里谈论的是性能提升。据我所知,您可以用双引号 (") 回显变量,如下所示:

<?php

echo "You are $yourAge years old";

?>

但是单引号只会返回You are $yourAge years old。但是性能差异呢?我一直遵循单引号更快的规则,因为 PHP 解释器不必在字符串中搜索变量。但我在网络上看到越来越多的博客和论坛帖子有不同的说法。

真的有人知道这个主题的任何信息吗?也许是基准测试之类的?

【问题讨论】:

  • 单引号更快,因为解释器不必扫描变量。不要为了最小的性能改进而牺牲代码的易读性或可理解性。
  • 不要尝试做微优化。在考虑字符串声明的性能差异之前,肯定还有其他部分可以优化。

标签: php performance syntax quotes


【解决方案1】:

根据PHP Benchmark,差别极其微不足道:

single (') quotes. 20 bytes Text and 3x a $ : $tmp[] = 'aa $ aaaa $ aaaa $ a'
235 µs

double (") quotes. 20 bytes Text and 3x a $ : $tmp[] = "aa $ aaaa $ aaaa $ a";
226 µs

即使差异是它们的倍数,它们也与 IMO 的实际性能无关。数据库和文件操作将花费数十甚至数百倍的时间。这并不是说您的问题并不完全有效,但在优化代码时这并不是什么大问题。

可读性非常重要。

【讨论】:

    【解决方案2】:

    http://www.phpbench.com/

    此处提供的基准非常有趣,内容丰富,可以回答您的问题。

    【讨论】:

      【解决方案3】:

      The PHP Benchmark 站点在它们之间根本没有显示出太大的差异(从底部开始的第二次测试)。我的意思是,它的速度要快一些,但我敢肯定,这几乎不是您需要担心的事情。

      如果您担心自己网站的性能,那么有比在打印调用中减少几微秒的时间来查看更好的地方。

      【讨论】:

      • 啊,谢谢。很棒的网站。老实说,如果性能提升和它说的一样少,我宁愿让我的代码更具可读性和更漂亮而不是担心它:P 我想知道它是如何更快的。
      【解决方案4】:

      我自己没有对它进行基准测试。我读过像http://phpbench.com 这样的地方单引号更快。我今天实际上在PHP Best Practices 读到双引号实际上更快,因为它们不提供任何来源:-/。

      【讨论】:

      • 这正是我看到的博文之一。
      猜你喜欢
      • 1970-01-01
      • 2013-12-14
      • 2013-02-16
      • 2013-08-25
      • 2011-01-23
      • 2011-06-02
      • 1970-01-01
      相关资源
      最近更新 更多