Переменная php в html не иначе, как: <? php echo $ var; ?> - PullRequest
56 голосов
/ 28 января 2010

Я много работаю со смешанным HTML и PHP, и в большинстве случаев я просто хочу иметь твердый HTML с несколькими переменными PHP, поэтому мой код выглядит так:

<tr><td> <input type="hidden" name="type" value="<?php echo $var; ?>" ></td></tr>

Что довольно уродливо. Есть ли что-то более короткое, похожее на следующее?

<tr><td> <input type="hidden" name="type" value="$$var" ></td></tr>

Это возможно, но вы застряли с "" (вы должны заменить их все на ''), и раскладка исчезла

echo "<tr><td> <input type="hidden" name="type" value="$var" ></td></tr>"

Есть что-нибудь лучше?

Ответы [ 6 ]

74 голосов
/ 28 января 2010

Существует короткая версия вашего кода, которая теперь полностью приемлема для использования несмотря на устаревшие рекомендации в противном случае:

<input type="hidden" name="type" value="<?= $var ?>" >

, который (до PHP 5.4) требует, чтобы в вашей конфигурации php были включены короткие теги. Он работает в точности как введенный вами код; эти строки буквально идентичны по своей внутренней реализации:

<?= $var1, $var2 ?>
<?php echo $var1, $var2 ?>

Вот и все о встроенных решениях. Существует множество сторонних библиотек шаблонов, которые облегчают встраивание данных в ваш вывод, smarty - хорошее место для начала.

23 голосов
/ 28 января 2010

Используйте синтаксис HEREDOC . Вы можете смешивать одинарные и двойные кавычки, переменные и даже вызовы функций с неизмененной / неэкранированной HTML-разметкой.

echo <<<MYTAG
  <tr><td> <input type="hidden" name="type" value="$var1" ></td></tr>
  <tr><td> <input type="hidden" name="type" value="$var2" ></td></tr>
  <tr><td> <input type="hidden" name="type" value="$var3" ></td></tr>
  <tr><td> <input type="hidden" name="type" value="$var4" ></td></tr>
MYTAG;
5 голосов
/ 28 января 2010

Я действительно думаю, что вы должны использовать шаблонизатор Smarty в качестве стандартного php lib для ваших проектов.

http://www.smarty.net/

Name: {$name|capitalize}<br>
1 голос
/ 26 января 2013

В разделе php перед разделом HTML используйте sprinf (), чтобы создать постоянную строку из переменных:

$mystuff = sprinf("My name is %s and my mother's name is %s","Suzy","Caroline");

Затем в разделе HTML вы можете делать все что угодно, например:

<p>$mystuff</p> 
1 голос
/ 28 января 2010

Я бы посоветовал не использовать короткие ярлыки, см. Допустимо ли использование коротких тегов PHP? для получения дополнительной информации о причинах.

Лично я не против смешивать HTML и PHP примерно так

<a href="<?php echo $link;?>">link description</a>

Пока у меня есть редактор кода с хорошей подсветкой синтаксиса, я думаю, что это довольно читабельно. Если вы начнете выводить HTML с PHP, вы потеряете все преимущества синтаксиса, выделяющего ваш HTML. Другим недостатком эхом HTML является материал с кавычками, следующее гораздо менее читабельное ИМХО.

echo '<a href="'.$link.'">link description</a>';

Самым большим преимуществом для меня благодаря простому отображению и простому цикличному выполнению в PHP и выполнению всего остального в HTML является то, что отступы последовательны, что в итоге улучшает читаемость / сканируемость.

1 голос
/ 28 января 2010

Существует множество систем шаблонов, которые предлагают более компактный синтаксис для ваших представлений. Smarty является почтенным и популярным. В этой статье перечислены 10 других.

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