PHP - объединять или напрямую вставлять переменные в строку - PullRequest
196 голосов
/ 09 апреля 2011

Мне интересно, как правильно вставить переменные PHP в строку? Таким образом:

echo "Welcome ".$name."!"

Или вот так:

echo "Welcome $name!"

Оба эти метода работают в моем PHP v5.3.5.Последнее короче и проще, но я не уверен, что первое форматирование лучше или считается более правильным.

Ответы [ 12 ]

1 голос
/ 09 апреля 2011

Вы должны выбрать первый.Они не имеют никакой разницы, кроме производительности: первое сравнение будет быстрым по сравнению со вторым.

Если переменная внутри двойной кавычки PHP требует времени для анализа переменной.

Проверьте это Одинарные кавычки или двойные кавычки для конкатенации переменных?

Это еще один пример Есть ли в кавычках повышение производительности по сравнению с двойной кавычкой в ​​php?

Я не понимаю, почему за этот ответ по приведенной выше ссылке проголосовали и почему этот ответ получил отрицательное голосование.

Как я уже говорил, то же самое.

Вы также можете посмотреть здесь

Что быстрее в PHP, одинарные или двойные кавычки?

0 голосов
/ 26 марта 2018

Я знаю, что это старый вопрос, но я думаю, что кто-то должен упомянуть все плюсы и минусы:

Лучший синтаксис : это личное предпочтение.

Производительность : без разницы.Как уже упоминалось, двойные кавычки могут быть быстрее, если использовать нереально много переменных.

Лучшее использование : одинарные кавычки (в основном).Как сказал @Khez, с помощью одинарных кавычек вы можете объединить что угодно, даже вызовы функций и модификацию переменных, например: echo 'hi ' . trim($name) . ($i + 1);.Единственное, что двойная кавычка может сделать, чего не может сделать одиночная кавычка, - это использование \n, \r, \t и т. П.

Читаемость : без разницыпредпочтение применимо).

Возможность записи / перезаписи / отладка : в однострочных операторах нет никакой разницы, но при работе с несколькими строками проще комментировать / раскомментировать строки во время отладкиили писать.Например:

$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';

Less Escapeing : одинарная кавычка.Для одиночной кавычки вам нужно экранировать только 2 символа (' и \).Для двойной кавычки вам нужно экранировать 2 символа (", \) и еще 3, если необходимо ($, { и }).

Меньше изменений : Одинарная кавычкаНапример, если у вас есть следующий код:

echo 'Number ' . $i . '!';

И вам нужно увеличить 1 до $ i, чтобы оно стало таким:

echo 'Number ' . ($i + 1) . '!';

Но для двойной кавычки вам понадобитсячтобы изменить это:

echo "Number $i!";

на это:

echo "Number " . ($i + 1) . "!";

Вывод : Используйте то, что вы предпочитаете .

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