2016-10-04 4 views
0

Я не знаю, как я могу проверить его.

Что быстрее в PHP:

$test = "Text {$code}"; 

или

$test = "Text ".$code; 

?

+0

'$ тест = 'Текст'. $ code; ' –

+0

@ DarrenH тоже дают причину, почему? –

+0

Честно говоря, абсолютно никакой реальной разницы в производительности. Если вы боретесь с производительностью, вы смотрите не на то, чтобы сделать код быстрее. –

ответ

2

В реальном мире, вы никогда не заметите никакой разницы, так что не парьтесь :)

Это маловероятно, что вы будете испытывать каких-либо заметных проблем со скоростью ни с одной из ваших вариантов, но позвольте мне объяснить, различия в любом случае и каково быстрейшее решение.

Когда вы используете двойные кавычки «как это», php попытается оценить любой текст внутри кавычек, поэтому вы можете использовать {$ code} внутри него, вы, конечно же, можете пропустить фигурные скобки и просто написать «Text $ code», если нет чего-то более сложного, чем простая оцениваемая переменная.

Ваш второй пример, который я ожидаю, будет немного медленнее (у меня нет доказательств этого, но я полагаю, что мы могли бы написать для него простой тест, если это необходимо). Поскольку сначала попытка оценить строку, THEN конкатенация переменной в строку, это отдельная операция.

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

Как это:

$test = 'Text ' . $code 
+0

В современных версиях PHP разница в производительности от одиночных до двойных кавычек практически невелика. –

+0

В качестве побочного примечания, как отметил @Charlotte Dunois, если вы испытываете проблемы с производительностью, отправьте свой код как отдельный вопрос, и мы поможем выяснить, в чем проблема, потому что это не так! –

+0

Хорошо, спасибо за объяснение. –

0

Ваш первый вариант является самым быстрым:

Бенчмарки набегать PHP 5.2 и 5.3 показывают, что анализ двойных кавычках строк с интерполяцией не является не медленнее (и часто быстрее), чем одиночные строки с использованием конкатенации. Когда используются простые строки без переменных , производительность явно лучше с строками с двойными кавычками из-за деталей реализации в двигателе.

Ссылка here

+0

В современных версиях PHP практически нет разницы в производительности от одиночных до двойных кавычек. –

+0

Я следил за ссылкой и с нетерпением ожидал результатов тестов, но postie.org выплевывает 503 ошибки.У вас есть контрольные точки, размещенные где-нибудь еще? –