2013-06-05 6 views
4

Я понимаю, что существует разница между одиночными кавычками и двойными кавычками. И после прочтения других вопросов, касающихся stackOverfow и просмотра this article, похоже, большинство людей согласны с тем, что прирост производительности при использовании одинарных кавычек является незначительным.Каков правильный способ выполнения конкатенации в PHP?

Как новый пользователь PHP всегда, используя двойные кавычки, кажется наиболее логичным и наименее запутанным. Но почему люди все еще разделяют свои двойные цитируемые ссылки?

<?php 

$a = '12345'; 

echo "Numbers: $a !"; //What I think is good 
echo "Numbers: " . $a . " !"; //What my teacher,book and tutorials use. 
echo 'Numbers: ' . $a . ' !'; // Trick that gave a noticeable performance gain pre-PHP 4.3 

?> 

Почему бы вам не выбрать второй или третий способ в последней версии PHP сегодня?

+0

Требуется иногда, например, в массивах (например, '' Numbers: ". $ _ POST ['aNumber']."! ";' – Sablefoste

+0

Вы можете использовать echo "Numbers: {$ a}!"; – pvnarula

+0

@SableFoste Вы можете использовать фигурные скобки с массивами. –

ответ

3

Ну, скажем, у вас есть $a = "apple";, и вы хотите, чтобы поместить его в строку "I love ______s!"

Используя интерполяцию, ваш «предпочтительный» метод, вы можете попробовать это: "I love $as!", но, конечно, это не будет работать ,

Именно поэтому я предпочитаю использовать "I love ".$a."s!", так как это предотвращает любые путаницы. Это также позволяет легко изменить его на доступ к массиву по какой-либо причине, так что это скорее «будущее обновление-доказательство». Следует также отметить, что большинство редакторов кода не могут выделить интерполированную переменную, поэтому ее сложнее найти визуально.

+0

Почему бы не просто «Я люблю {$ a} s!» 'Тот же результат? такая же читаемость? –

+0

Тем не менее, это не подчеркивается большинством редакторов. –

+0

Это может быть правдой. В прошлый раз я работал только с PHPStorm (jetbrains), который подчеркивал это. –

3

Я обычно работают на жидком использовать третий способ:

echo 'Numbers: ' . $a . ' !'; 

я использую одинарные кавычки как можно больше, потому что я думаю, это выглядит гораздо чище. Когда мне нужны вещи вроде новой строки в моей строке, я обычно пишу ее отдельно от остальной части строки. Это также указывает на этот «особый» строка немного больше:

echo 'Numbers: ' . $a . ' !' . "\n"; 

Кроме того, я думаю, имеющие переменные внутри строк в двойных кавычках ("like $so") неясна, и вы не будете иметь подсветку синтаксиса многих редакторов.

+0

'и PHP не нужно искать специальные символы.' +1 – hek2mgl

+1

, или если вам не нужна конкатенированная строка, вы просто хотите повторить 3 значения, которые вы можете использовать запятой, поскольку echo принимает переменное количество параметров и вам не нужно добавлять дополнительную операцию в «игру» (конкатенация) – mishu

+0

Это не быстрее! http://nikic.github.io/2012/01/09/Disproving-the-Single-Quotes-Performance-Myth.html – miken32

Смежные вопросы