PHP“”vs''

时间:2009-05-21 03:51:51

标签: php

我只是想知道什么是更昂贵的,比如:

echo "Hello world, my name is $name";

echo 'Hello world, my name is '.$name;

我知道在这种情况下它不会有太大的区别,但也许在这里它会:

for($i = 0; $i < 10000; $i++)
{
    echo 'Hello world, my name is '.$name;
}

提前致谢!

5 个答案:

答案 0 :(得分:17)

就个人而言,我会使用:

echo 'Hello ' , $name;

echo接受多个参数,因此不需要连接这样的东西。 这是benchmark,显示'和'之间的差异(几乎没有)。但是,“允许转义序列(\ n等)和变量扩展。

这种类型的东西是微优化,你不应该担心它。请参阅以下有关优化的主题:

How important is optimization? https://stackoverflow.com/questions/127765/php-optimization-tips Optimizing PHP string concatenation

答案 1 :(得分:0)

请参阅The PHP Benchmark ...

的“字符串输出”部分

或者只是写一些蹩脚的微型循环并自己测试它们。

ob_start();
$s = microtime(true);
for ($i=0; $i<10000; $i++)
    echo 'Hello world, my name is '.$i."\n";
$end = microtime(true) - $s;
ob_end_clean();
echo $end;

答案 2 :(得分:0)

除了使用单引号和连接的更高效率之外,我更喜欢这种风格,因为我的编辑器的语法突出显示效果更好。它非常清楚,该行的哪一部分是字符串文字,哪一部分是变量。

您也可以在Stack Overflow的语法高亮显示中看到这一点。

答案 3 :(得分:0)

根据PHP's docs

  

与其他两种语法不同,特殊字符的变量和转义序列在单引号字符串中出现时不会被扩展。

这意味着在循环中使用单引号可能会更快。

答案 4 :(得分:0)

第一种情况下运行1000000次迭代需要0.671秒,而在我的计算机上运行第二种情况需要0.494秒。

所以,''比“”更快。

我在Pentium 4 2.4GHz上使用PHP 5.2.4-2ubuntu5.6