RGameShow
@RGameShow
В поисках ответов на глупые вопросы

Заключение переменных в двойные кавычки, нормально или грех?

Возник спор с программистом на работе..
$a = 55;
$b = 65;
$res = $a + $b;

echo "Ответ $res";

Говорит что не стоит писать в кавычках одновременно текст и переменную, хотя в официальной документации говорится что можно, главное заключить в двойные кавычки ("").

Кто прав?
Стоит ли писать так как пишу я или же придерживаться такому синтаксису
$a = 55;
$b = 65;
$res = $a + $b;

echo 'Ответ '.$res;
  • Вопрос задан
  • 510 просмотров
Решения вопроса 1
Нормально. Если я не ошибаюсь в PHP7 этот синтаксис специально оптимизировали. Так что он даже быстрее склеивает строки.
php.net/manual/ru/language.types.string.php#langua...

UPD. Еще добавлю.
В PHP эта возможность "всегда" была. А вот в JavaScript только "недавно" добавили. Не будь это опция такой полезной, вряд ли его стали добавлять в "современный" JS.
https://habr.com/post/252323/#template-strings
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
JhaoDa
@JhaoDa
LaravelRUS Team
Можно. Я, например, использую и не вижу проблем. И лучше использовать синтаксис с усами — как по мне, так повышает читабельность помимо прочих плюшек:
echo "Ответ {$res}";
Ответ написан
sergiks
@sergiks Куратор тега PHP
♬♬
В некоторых IDE подсветка синтаксиса не работает для случая переменной-в-строке. Для меня лично это основная причина избегать такого стиля.

А вообще это «нормально».
Ответ написан
402d
@402d
начинал с бейсика на УКНЦ в 1988
Мое мнение тут главная ошибка в echo . На весь проект такой оператор должен быть один.
Вторая ошибка как я подозреваю контролеры смешиваются с представлениями.
Третья, не задумываетесь об многоязычности.

А спорить можно или нельзя можно долго. Только в правильном проекте такого вообще не должно встречаться.

А если нужно, собирать строки например для смс уведомления
$mes =  sprintf("Уважаемый, %s! Стоимость вашего заказа %d руб.",$username,$cost);

просто сравните на сколько проще потом будет менять тексты, его можно даже вынести в таблицу
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы