PHP "" против " - PullRequest
       21

PHP "" против "

2 голосов
/ 21 мая 2009

Мне просто интересно, что дороже, что-то вроде:

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 ]

17 голосов
/ 21 мая 2009

Лично я бы использовал:

echo 'Hello ' , $name;

echo принимает несколько аргументов, поэтому нет необходимости объединять что-то подобное. Вот бенчмарк , который показывает разницу между 'и "(практически нет). Однако" позволяет использовать escape-последовательности (\ n и т. Д.) И расширение переменной.

Этот тип вещей является микрооптимизацией, и вам не стоит об этом беспокоиться. Смотрите следующие темы об оптимизации:

Насколько важна оптимизация? https://stackoverflow.com/questions/127765/php-optimization-tips Оптимизация конкатенации строк PHP

0 голосов
/ 21 мая 2009

Помимо большей эффективности использования одинарных кавычек и конкатенации, я предпочитаю этот стиль, потому что подсветка синтаксиса моего редактора просто работает лучше. Совершенно ясно, какая часть строки является строковым литералом, а какая - переменной.

Это можно увидеть и в подсветке синтаксиса Stack Overflow.

0 голосов
/ 21 мая 2009

См. Раздел «Вывод строки» в Тест PHP ...

Или просто напишите несколько дурацких микрочастиц и протестируйте их сами.

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;
0 голосов
/ 21 мая 2009

Выполнение 1000000 итераций занимает 0,671 с для первого случая и 0,494 с для второго случая на моем компьютере.

Итак, '' быстрее, чем "".

Я на PHP 5.2.4-2ubuntu5.6 на Pentium 4 2,4 ГГц

0 голосов
/ 21 мая 2009

Согласно Документам PHP :

В отличие от двух других синтаксисов, переменные и escape-последовательности для специальных символов не будут расширяться, если они встречаются в одиночных кавычках.

Это означает, что использование одинарных кавычек в цикле, вероятно, будет быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...