Я много работаю в смешанном 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>"
есть что-нибудь получше?
Существует короткая версия вашего кода, которая теперь полностью приемлема для использования, несмотря на устаревшие рекомендации:
<tr><td> <input type="hidden" name="type" value="<?= $var ?>" ></td></tr>
который (до PHP 5.4) требует включения коротких тегов в вашей конфигурации php. Он функционирует точно так же, как введенный вами код; эти строки буквально идентичны в их внутренней реализации:
<?= $var1, $var2 ?> <?php echo $var1, $var2 ?>
Речь идет о встроенных решениях. Существует множество сторонних библиотек шаблонов, которые упрощают встраивание данных в ваш вывод, smarty – это хорошее место для начала.
Используйте синтаксис 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;
Я действительно думаю, что вы должны использовать Smarty template engine в качестве стандартной php lib для своих проектов.
Name: {$name|capitalize}<br>
Существует множество систем шаблонов, которые предлагают более компактный синтаксис для ваших представлений. Smarty почтен и популярен. В этой статье перечислены 10 других.
Я бы посоветовал не использовать короткие тэги , см. Допустимые для PHP короткие теги? для получения дополнительной информации о том, почему.
Лично я не против смешивать HTML и PHP так
<a href="<?php echo $link;?>">link description</a>
До тех пор, пока у меня есть редактор кода с хорошей подсветкой синтаксиса, я думаю, что это довольно читаемо. Если вы начнете эхом HTML с PHP, вы потеряете все преимущества синтаксиса, выделяя ваш HTML. Другим недостатком эхо-ответа HTML является материал с кавычками, следующий намного менее читаемый ИМХО.
echo '<a href="'.$link.'">link description</a>';
Самое большое преимущество для меня с простым эхом и простым циклом в PHP и остальным в HTML заключается в том, что отступы согласованы, что в итоге улучшает читаемость / проверку.
В разделе php перед секцией HTML используйте sprinf () для создания постоянной строки из переменных:
$mystuff = sprinf("My name is %s and my mother's name is %s","Suzy","Caroline");
Затем в разделе HTML вы можете делать все, что захотите, например:
<p>$mystuff</p>