据我所见(在 GitHub 中浏览流行的 PHP 代码)有很多人不使用字符串插值:
$loader->load($config['resource'].'.xml');
相对:
$loader->load("{$config['resource']}.xml");
不使用字符串插值是否有任何理由(即性能)?
据我所见(在 GitHub 中浏览流行的 PHP 代码)有很多人不使用字符串插值:
$loader->load($config['resource'].'.xml');
相对:
$loader->load("{$config['resource']}.xml");
不使用字符串插值是否有任何理由(即性能)?
不,没有理由不在 PHP 中使用字符串插值。
虽然 PHP 在内部处理字符串插值和连接 的方式存在微小差异,但这些差异非常小,以至于在实践中几乎无法测量,因此应该留给 PHP 处理。
如果或当您看到基准,在 PHP 中使用字符串时,要寻找的东西通常是迭代次数。为了获得可衡量的结果,您需要设置n
一些高度夸大的值,这在现实世界中永远不会发生。
总而言之,优化在 PHP 中处理字符串的方式没有多大意义。相反,您应该关注对您的网站性能有显着影响的问题;缓存、数据库内容,尤其是前端。
不使用字符串插值是否有任何理由(即性能)?
绝对不是性能。
唯一的原因是可读性和可用性。即在给定的示例中,第二行有花括号形式的障碍,它们要么无用,要么使代码更难阅读。那为什么要使用它们呢?
然而,如果是
"$somevar.xml"
以这种方式或以连接方式编写它只是一个品味问题
$somevar.".xml"
大多数情况下,这只是口味问题。我不确定你是否真的观察到了这里的整体偏好,但我已经在评论中写了。
就性能而言:
插值越多,插值就越有效。[参考]
但如果就性能而言,就不好说了。这需要具体的代码,然后是该代码的具体性能测量。因为在大多数情况下,您不会注意到差异。
不,不是,但有些人认为这是糟糕的代码。但我不同意这种说法。它认为代码看起来更清晰,这是我在 PHP 中非常喜欢的一件事。
目前,我无法找到基准测试,但我能记住结果。结果几乎相等(+/- 0.0001 秒乘以 100 次交互)。