Intereting Posts
Интерфейсы и наследование абстрактного класса, реализация в расширенных классах mysqli: Строгие стандарты: только переменные должны передаваться по ссылке Генерация метатекстов Facebook Open Graph динамически Regex – Strip non numeric и удаляет центы, если они есть MySQLi: подготовленный оператор для возврата вложенных массивов Отправить строку как файл с помощью curl и php Как заставить php-страницу возвращать ошибку 503 (или что-то не-200) Как конвертировать Excel XLS в CSV с помощью PHP Вопрос синтаксиса PHP: что означает знак вопроса и двоеточие? Что-то вроде функции делегата callback в php Удалить index.php? Route = common / home из OpenCart phpMyAdmin не может работать на CentOS 6.5 с PHP5.5.8 Регулярное выражение соответствует словам или фразам в строке, но НЕ совпадает с частью URL или внутри тегов <a> </a>. (РНР) Найти все файлы в каталоге со строкой или шаблоном в имени файла с помощью PHP Электронная почта Div Content

php-переменная в html нет другого пути: <? php echo $ var; ?>

Я много работаю в смешанном 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 для своих проектов.

http://www.smarty.net/

 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>