在PHP的PHPvariables没有其他方式比:<?php echo $ var; ?>

我在混合的HTML和PHP中工作了很多,大部分时间我只是想要一些带有PHPvariables的纯HTML,所以我的代码如下所示:

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

这是相当丑陋的。 是不是有更短的东西,更像以下?

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

这是可能的,但你卡住了"" (你必须全部用''replace),布局不见了

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

有更好的吗?

有代码的短标签版本,尽pipe陈旧的build议, 现在完全可以接受使用

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

(在PHP 5.4之前)需要在你的PHPconfiguration中启用短标签。 它的function与您input的代码完全相同; 这些行在内部实现方面是完全相同的:

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

这就是内置解决scheme。 有很多第三方模板库可以让你在输出中更容易embedded数据, smarty是一个很好的开始。

使用HEREDOC语法。 您可以混合单引号,双引号,variables,甚至函数调用与未改变/未转义的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模板引擎作为你的项目的标准php lib。

http://www.smarty.net/

 Name: {$name|capitalize}<br> 

有很多模板系统为您的视图提供更紧凑的语法。 Smarty非常受欢迎。 这篇文章列出了10个人。

我build议不要使用短标签 ,请参阅PHP短标签是否可以使用? 了解更多关于原因的信息。

就个人而言,我不介意像这样混合HTML和PHP

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

只要我有一个语法高亮的代码编辑器,我认为这是非常可读的。 如果您开始使用PHP回显HTML,那么您将失去语法突出显示HTML的所有优点。 回声HTML的另一个缺点是引用的东西,以下是一个很less可读的恕我直言。

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

在PHP中使用简单的回显和简单循环对我来说最大的好处是,缩进是一致的,最终提高了可读性/可扫描性。

在HTML部分之前的php部分,使用sprinf()从variables中创build一个常量string:

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

然后在HTML部分,你可以做任何你喜欢的,如:

 <p>$mystuff</p>