在PHP中不使用字符串插值的原因是什么?

4
据我所见(浏览GitHub上流行的PHP代码),有很多人没有使用字符串插值
$loader->load($config['resource'].'.xml');

对比:

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

有没有不使用字符串插值的原因(例如性能)?


https://dev59.com/BXVD5IYBdhLWcg3wVKEb - monkeyinsight
你确定吗?我的看法恰恰相反:许多人都在使用字符串插值,甚至经常使用那些使用太多字符来完成插值工作的写作方式。你的问题本身就是一个很好的例子。 - M8R-1jmw5r
4个回答

8

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

虽然PHP如何处理字符串插值和连接内部存在微小的差异,但这些差异在实践中几乎无法测量,因此应该让PHP来处理它们。

如果您看到有关在PHP中处理字符串的基准测试,通常要查找的是迭代次数。为了获得可衡量的结果,您需要将n设置为某个在现实世界中从未出现的高度夸张的值。

总之,在PHP中优化如何处理字符串并没有太多意义。相反,您应该专注于那些实际上会对网站性能产生显着影响的问题;缓存、数据库和尤其是前端


1
我希望我能给这个点赞两次。它需要被说出来的比它已经被说出来的更多。 - cHao
1
实际上,当涉及到真正的测试时,这并不是真的,因为根本没有任何区别。然而,就一般情况而言,我完全支持你的观点。还有其他可测量的情况,尽管它们仍然是微不足道的。 - Your Common Sense

2

使用字符串插值的时候,有没有什么不使用它的理由(例如性能)?

绝对不是因为性能问题。

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

但是,如果这是:

"$somevar.xml"

使用这种方式或者连接字符串的方式来编写代码,只是个人口味问题。

$somevar.".xml"

0

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

就性能而言:

插值在插值量越大时效率越高。[参考]

但是,如果关心性能,则很难说。这需要具体的代码,然后对该代码进行具体的性能测量。因为在大多数情况下,您不会注意到任何差异。


你不是刚刚在另一个答案中评论说没有性能差异吗...? :) - cHao
@cHao:是的,我现在自己写了一个答案,看到了正确表述有多么困难:我的意思是你不能说哪个更快。我还删除了那条评论,因为它有点误导性,正如你所评论的一样。 - M8R-1jmw5r

-1

不,它并不是坏代码,但有些人认为它是。但我不同意这个观点。我认为PHP的代码看起来更清晰,这也是我喜欢PHP的原因之一。

目前,我找不到基准测试,但我记得结果。结果几乎相等(100次交互的误差在+/- 0.0001秒左右)。


为什么我的回答被踩了? - Matt3o12
有人可能非常不同意你认为第二个更“清晰”的观点。在这种情况下,我也是这样(大括号很麻烦),但是呃。 - cHao

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