@itfan

Есть ли какие-то методы написания кода, когда надо смешать php и html в одной строке?

Допустим, есть простейший код ссылки, как показано ниже.

<a href="page.html">Страница</a>

Например, в итогововом коде на место page.html и Страница надо поставить переменные из php. Если строка в одинарных кавычках, придется задействовать конкатенацию. Уже на 2 заменах читаемость кода значительно снижается. Если таких подстановок 5-10, то код превратится в невообразимую кашу. Есть ли какие-то проверенные подходы для решения этой проблемы, кроме двойных кавычек?
  • Вопрос задан
  • 191 просмотр
Пригласить эксперта
Ответы на вопрос 5
firedragon
@firedragon
Senior .NET developer
Основная претензия к php это спагетти код . Используйте шаблонизаторы и разделяйте логику и отображение
Ответ написан
php666
@php666
PHP-макака
Излюбленная тема умников всех времен и народов, когда поднимается тема о смешении php и html - советовать на каждый чих шаблонизатор. При этом, почему-то умалчивается, что любой шаблозатор в итоге создаёт туже самую смесь из php и html.

Шаблонизатор - это просто пхп написанный на пхп с синтаксическим сахаром. И использовать его нужно тогда, когда это необходимо. Наследование шаблонов, эскейпинг и, в целом, когда в этом есть НЕОБХОДИМОСТЬ, что бы не писать хэлперы обработки вывода данных.

Если же речь идёт о каком-то локальном решении, то нужно использовать один шаблонизатор и имя ему - PHP.
Для этого в языке есть такая вещь, как короткие теги вывода <?=$var?> и альтернативный синтаксис управляющих структур, который идеально ложится на html как инструмент для адекватного восприятия логики отображения. Кроме этого, можно задействовать функции буферизации вывода и получить легковесное решение.
Ответ написан
Есть ли какие-то проверенные подходы для решения этой проблемы, кроме двойных кавычек?

Да - шаблонизаторы
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
В простейшем случае используют ечо-шорткод<a href="<?=$url?>">Страница</a>, в более организованном коде предпочтение отдается шаблонизаторам (блэйд, смарти, хотя последний морально устарел).
Хотя от конкатенации и прочих нюансов это сильно не спасает, просто готовьте строки не в отображении, а в логике.
Ответ написан
part_os
@part_os
Сложное в простом
sprintf попробуйте. Отлично подходит для этого.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы