Между этими двумя синтаксисами вы должны выбрать тот, который вы предпочитаете: -)
Лично я бы пошел со своим вторым решением в таком случае (переменная интерполяция) , который мне легче писать и читать.
Результат будет таким же; и даже если есть последствия для производительности, это не будет иметь значения 1.
Как побочный элемент, поэтому мой ответ немного более полный: в тот день, когда вы захотите сделать что-то вроде этого:
echo "Welcome $names!";
PHP будет интерпретировать ваш код так, как если бы вы пытались использовать переменную $names
- которая не существует.
В тот день вам нужно будет использовать {}
:
echo "Welcome {$name}s!"
Не нужно отступать от конкатенаций.
Также обратите внимание, что ваш первый синтаксис:
echo "Welcome ".$name."!";
Возможно, был оптимизирован , избегая конкатенаций, используя:
echo "Welcome ", $name, "!";
(Но, как я сказал ранее, это не имеет большого значения ...)
1 - Если вы не делаете сотни тысяч конкатенаций против интерполяций - и это, вероятно, не совсем так.
Вы должны выбрать первый. Они не имеют никакой разницы, кроме производительности, первая из которых будет быстрой в сравнении второго.
Если переменная внутри двойной кавычки PHP занимает время для разбора переменной.
Check out Одиночные кавычки или двойные кавычки для конкатенации переменных?
Это еще один пример . Есть ли однократная цитата с преимуществами производительности против двойной цитаты в php?
Я не понял, почему этот ответ в ссылке выше, и почему этот ответ получил downvote.
Как я сказал то же самое.
Вы можете посмотреть здесь также
Не объединяйтесь. Это не нужно, мы запятые, поскольку эхо может принимать несколько параметров
echo "Welcome ", $name, "!";
Что касается использования одиночных или двойных кавычек, разница незначительна, вы можете провести тесты с большим количеством строк, чтобы проверить себя.
Я знаю, что этот вопрос уже имеет выбранный ответ, но я нашел в этой статье , что, очевидно, показывает, что интерполяция строк работает быстрее, чем конкатенация. Это может быть полезно для тех, кто все еще сомневается.
Я знаю, что это старый вопрос, но я думаю, что кто-то должен упомянуть всех профи и amp; cons:
Улучшенный синтаксис: это личное предпочтение.
Производительность: нет разницы. Как уже упоминалось, двойная кавычка может быть быстрее, если использовать нереально множество переменных.
Лучшее использование: одинарная кавычка (в основном). Как сказал @Khez, с одной цитатой вы можете конкатенировать что угодно, даже вызовы функций и модификацию переменных, например: echo 'hi ' . trim($name) . ($i + 1);
. Единственная двойная кавычка может сделать эту одинарную кавычку, которую нельзя сделать, это использовать \n
, \r
, \t
и так же.
Считываемость: никакой разницы (может быть применено личное предпочтение).
Writability / Re-Writability / Debugging: в операциях с 1 строкой нет разницы, но при работе с несколькими строками легче комментировать / раскомментировать строки при отладке или записи. Например:
$q = 'SELECT ' .
't1.col1 ' .
',t2.col2 ' .
//',t3.col3 ' .
'FROM tbl1 AS t1 ' .
'LEFT JOIN tbl2 AS t2 ON t2.col2 = t1.col1 ' .
//'LEFT JOIN tbl3 AS t3 ON t3.col3 = t2.col2 ' .
'WHERE t1.col1 = ' . $x . ' ' .
' AND t2.col2 = ' . $y . ' ' .
//' AND t3.col3 = ' . $z . ' ' .
'ORDER BY t1.col1 ASC ' .
'LIMIT 10';
Меньше экранирования: одинарная кавычка. Для одиночной кавычки вам нужно избегать только двух символов ('
и \
). Для двойной кавычки вам нужно вывести 2 символа ("
, \
) и еще 3, если требуется ($
, {
и }
).
Less Changes: Single quote. Например, если у вас есть следующий код:
echo 'Number ' . $i . '!';
И вам нужно увеличивать 1 до $ i, поэтому он становится симпатичным:
echo 'Number ' . ($i + 1) . '!';
Но для двойной кавычки вы необходимо будет изменить это:
echo "Number $i!";
:
echo "Number " . ($i + 1) . "!";
Вывод: используйте то, что вы предпочитаете.
С точки зрения создания мысли, простого, понятного, последовательного и легко понять (поскольку производительность здесь не имеет значения):
{}
и \
, которые IMO добавляет путаницу и делает удобство чтения в конкатенации почти эквивалентным, если не лучше. htmlspecialchars($var)
, вы должны переключиться на конкатенацию. В некоторых конкретных случаях «двойные кавычки с встраиванием vars» могут быть полезным, но, вообще говоря, я бы пошел на конкатенацию (используя одиночные или двойные кавычки, когда это удобно)
Любой из них в порядке. Используйте ту, которая имеет лучшую видимость для вас. И, говоря о видимости, вы также можете проверить printf .
Строки с двойными кавычками более элегантны, потому что вам не нужно разбивать строку каждый раз, когда вам нужно вставить переменную (например, вы должны делать строки с одним кавычком).
Однако, если вам нужно вставить возвращаемое значение функции, это не может быть вставлено в строку с двумя кавычками - даже если вы окружите ее фигурными скобками!
//syntax error!!
//$s = "Hello {trim($world)}!"
//the only option
$s = "Hello " . trim($world) . "!";
, поскольку php4 вы можете использовать форматировщик строк:
$num = 5;
$word = 'banana';
$format = 'can you say %d times the word %s';
echo sprintf($format, $num, $word);
Это только вопрос вкуса. Используйте все, что пожелаете.
Большую часть времени я использую второй, но это зависит.
Позвольте мне также предложить вам хороший редактор, который выделит переменную внутри строки
Пойдите с первым и используйте одинарные кавычки!
Единственные ситуации, когда вы должны использовать двойные кавычки, - это когда вам нужны \r
, \n
, \t
! Накладные расходы просто не стоит использовать его в любом другом случае.
Вы также должны проверить конкатенацию переменных PHP , phpbench.com для некоторых тестов о различных методах ведения дел.