Использование переменных php в кавычках ECHO

241
27 августа 2017, 05:34

Есть два куска php кода. Первый с кавычками.

echo "<option value='".$key['id']."'>".$key['name']." (".$key['width']." x ".$key['height'].")"."</option>";

И второй без кавычек.

echo "<option value='$key[id]'>$key[name] ($key[width] x $key[height])</option>";

Оба работают. Вопрос такой: Является ли второй вариант приемлемым с точки зрения правильности кода? Можно ли использовать такие конструкции повсеместно? Спасибо заранее за консультацию.

Answer 1

Вижу, что вы не присваиваете результат переменной, а выводите его, поэтому оба «неверно». PHP не для этого изначально был создан, чтобы разметку выводить.

Правильно и удобно для поддержки проекта в дальнейшем будет:

<option value="<?= $key['id'] ?>">
    <?= $key['name'] ?> (<?= $key['width'] ?> x <?= $key['height'] ?>)
</option>

Старайтесь изначально разделять логику от представления.

Так же когда начнете шаблонизаторы использовать — будет проще под них разметку изменить.

Изучите основы синтаксиса языка PHP, в частности:

  • Изолирование от HTML
  • Альтернативный синтаксис управляющих структур
Answer 2

Можно использовать обе варианта. Только для группы разработчиков надо выбрать одно из двух вариантов. Так как не будет красиво на одном сайте использовать обе варианта.

По мне первый вариант предпочтительный. Я по крайне мере так пишу.

Плюс первого варианта: Все редакторы правильно подкрашивает переменные. Плюс второго варианта: Код короче получается. Минус второго варианта: Если вы захотите вставить символ - " то необходимо писать \"

READ ALSO
certificate verify failed Telegram

certificate verify failed Telegram

Доброго времени сутокВозникла потребность в написании телеграм-бота с использованием WebHook

668