在双引号中使用变量名是坏习惯吗?

时间:2011-02-07 09:37:39

标签: php

$foo= 'dudes';
$bar= 'whats up';
<?php echo 'hey,'.$foo.' '.$bar.'?'; ?>
<?php echo "hey, $foo $bar?"; ?>

<span style="color:#993333">
<?php echo "hey, $foo $bar?"; ?>
</span>

慢于

<span style="color:#339933">
<?php echo 'hey,'.$foo.' '.$bar.'?'; ?>
</span>

3 个答案:

答案 0 :(得分:5)

是。使用单引号稍微快一些。

这是因为当你使用双引号时,PHP必须解析以检查那里是否有变量。

Speed difference in using inline strings vs concatenation in php5?

答案 1 :(得分:2)

不,这不是一个坏习惯,也不是慢。

但是,在使用PHP模板时,尽量避免一次打印多个变量,以保持正确 我会这样做:

hey, <?=$foo?> <?=$bar?>?

但它仍然是风格问题,因为没有其他理由偏爱另一个

一张纸条。很遗憾看到来自不那么有经验的参与者的众多答案,他们不是从他们自己的现实生活经历中说出来,而是一个接一个地重复一些持久的谣言。

另外,我会说这个问题本身有非常糟糕的推理。如果你问什么是慢 - 你提出错误的问题。对于大多数问题,这种差异无关紧要,只是浪费时间。性能调优是一个过程,而不是一些“神秘知识”。一个人必须学习如何分析他们的应用程序,并获得一些基本的经验,以提出明显的性能相关问题。否则就没有任何好处。

答案 2 :(得分:0)

是。使用单引号键入构造稍微慢一些。

运行时速度没有区别。唯一的区别在于标记化,其中单引号的处理速度可以忽略不计。

我已经运行了一次测试(PHP 5.3.2,amd64,linux)以测量一些差异,非常不科学。单引号的速度提高了14%,但这只是因为我通过eval抽取了1,000,000,000,000个字符串。否则很难衡量。它与现实世界的应用程序严重无关,因为你从来没有那么多字符串。

因此,当存在另一种非常优化且更具可读性的语法结构时,使用单引号也会引起对非智能设计的感知。