【问题标题】:Is there any reason for not using string interpolation in PHP? [closed]有什么理由不在 PHP 中使用字符串插值? [关闭]
【发布时间】:2013-04-05 19:49:10
【问题描述】:

据我所知(在GitHub上浏览流行的PHP代码)有很多人没有使用string interpolation

$loader->load($config['resource'].'.xml');

对比:

$loader->load("{$config['resource']}.xml");

是否有任何理由(即性能)不使用字符串插值?

【问题讨论】:

  • 你确定吗?我的看法正好相反:许多人正在使用字符串插值,甚至经常使用使用太多字符来完成插值工作的文章。你的问题本身就是一个很好的例子。

标签: php string string-interpolation


【解决方案1】:

不,没有理由不在 PHP 中使用字符串插值。

虽然how PHP handles string interpolation and concatenation 内部存在微小差异,但这些差异非常小,在实践中几乎无法测量,因此应留给 PHP 处理。

如果或当您看到基准测试时,对于在 PHP 中处理字符串,要寻找的东西通常是迭代次数。为了获得可衡量的结果,您需要将 n 设置为某个高度夸大的值,这在现实世界中永远不会发生。

总之,优化您在 PHP 中处理字符串的方式并没有多大意义。相反,您应该关注对您的网站性能有显着影响的问题;缓存、数据库内容,尤其是front end

【讨论】:

  • 我希望我能投票两次。它需要说的比以前多得多。
  • 这实际上是不是正确的,当涉及到 真正的测试时,它根本不会显示任何差异。但是,总的来说,我完全站在你这边。还有其他可衡量的案例仍然完全可以忽略不计
【解决方案2】:

不使用字符串插值有什么原因(即性能)?

不是性能,绝对。

唯一的原因是可读性和可用性。 IE。在给定的示例中,第二行有花括号形式的障碍,它们要么无用,要么使代码更难阅读。那为什么要使用它们呢?

如果是的话

"$somevar.xml"

以这种方式或以串联方式编写只是个人喜好问题

$somevar.".xml"

【讨论】:

    【解决方案3】:

    大多数情况下,这只是口味问题。而且我不确定你是否真的观察到了这里的总体偏好,但我已经在评论中写过了。

    就性能而言:

    插值越多,插值效率越高。 [ref]

    但是if 性能方面就不好说了。这需要具体的代码,然后是该代码的具体性能测量。因为在大多数情况下,您不会注意到差异。

    【讨论】:

    • 您是否只是评论另一个答案存在no性能差异......? :)
    • @cHao:是的,我现在自己写了一个答案,看到正确表述是多么困难:我的意思是你不能说两者中哪一个更快。我还删除了该评论,因为它也像您评论的那样具有误导性。
    【解决方案4】:

    不,不是,但有些人认为它是糟糕的代码。但我不同意这种说法。它认为代码看起来更清晰,这是我在 PHP 中非常喜欢的一件事。

    目前,我无法找到基准测试,但我能记住结果。结果几乎相等(+/- 0.0001 秒乘以 100 次交互)。

    【讨论】:

    • 为什么我的遮阳篷被否决了?
    • 有人可能不同意你的观点,即第二个“更清晰”。我也是,在这种情况下(牙套很痛苦),但是嗯。
    猜你喜欢
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 2011-10-12
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多