html中的php变量没有别的办法:<?php echo $ var; ?>

mat*_*thy 58 html php variables

我在混合HTML和PHP中工作很多,而且大多数时候我只想要带有一些PHP变量的可靠HTML,所以我的代码如下所示:

<tr><td> <input type="hidden" name="type" value="<?php echo $var; ?>" ></td></tr>
Run Code Online (Sandbox Code Playgroud)

这很难看.是不是有更短的东西,更像是以下?

<tr><td> <input type="hidden" name="type" value="$$var" ></td></tr>
Run Code Online (Sandbox Code Playgroud)

这是可能的,但你会陷入困境""(你必须全部替换它们'')并且布局消失了

echo "<tr><td> <input type="hidden" name="type" value="$var" ></td></tr>"
Run Code Online (Sandbox Code Playgroud)

有更好的吗?

mea*_*gar 77

有你的代码的短标签版本,现在完全可以使用,尽管有过时的建议:

<input type="hidden" name="type" value="<?= $var ?>" >
Run Code Online (Sandbox Code Playgroud)

其中(在PHP 5.4之前)需要在php配置中启用短标签.它的功能与您输入的代码完全相同; 这些行的内部实现完全相同:

<?= $var1, $var2 ?>
<?php echo $var1, $var2 ?>
Run Code Online (Sandbox Code Playgroud)

对于内置解决方案而言,这就是它.有很多第三方模板库可以更容易地将数据嵌入到输出中,smarty是一个很好的起点.

  • @code_burgar短标签不会从PHP6中删除,也不会被弃用. (4认同)
  • 不会.默认情况下启用短回波**,无论ini设置如何,在PHP> = 5.4**.不需要再设置`short_open_tag`,你可以随意使用你的`<?=`和`?>`来查看视图中的干净代码.即使在2010年,短标签仍然被弃用是完整的,完全是垃圾. (4认同)
  • 为了回应@Jimbo的观点,`<?`和`<?=`经常被混淆.不鼓励前者,后者是好的,从PHP 5.4开始,后者总是可用的(见http://www.php.net/manual/en/ini.core.php#ini.short-open-tag)如果使用php 5.3及更早版本,你只需要小心确保`short_open_tag`打开(它是`PHP_INI_ALL`,意味着它可以在你的脚本中打开). (3认同)
  • @code_burgar不要在PHP脚本中编写XML,XML编码数据并编写结果输出.我从未遇到过禁用short_open_tags的服务器. (2认同)

cod*_*gar 24

使用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;
Run Code Online (Sandbox Code Playgroud)

  • 我对HEREDOC语法的唯一问题是它打败了我的页面HTML部分的语法高亮. (3认同)

gcb*_*gcb 5

我真的认为你应该采用Smarty模板引擎作为你的项目的标准php lib.

http://www.smarty.net/

Name: {$name|capitalize}<br>
Run Code Online (Sandbox Code Playgroud)

  • 你赞成什么? (6认同)
  • 赞成的论点: - 将PHP代码与html分离(更好地进行维护) - 智能模板将按原样显示在浏览器中.(没有编程经验的前端设计师可以更好地理解它) - 缓存.(你可以根据输入保存页面的多个缓存副本,这比再次生成整个页面要快得多)缺点 - smarty有点过于强大,并且程序员可以在模板中加入过多的逻辑......但是至少它是显示逻辑 (3认同)