你能用PHP把PHP放在PHP里吗?

时间:2013-03-05 15:43:55

标签: php html

在html中使用很少的PHP片段,比如Wordpress,你可以在PHP回声中使用PHP吗?

示例:

<?php 
    echo "<?php the_author_meta('description'); ?>";
?>

尽管不必要,甚至可以做到吗?如果没有,PHP的一个方面似乎仍然让我感到困惑的是如何在输出HTML时结束并重新启动PHP。

例如,克里斯在这里回答:How can I echo HTML in PHP? - 我非常希望在他的例子结尾处加上?>,但这会导致错误。有人可以向我指出一些关于如何在与HTML混合时使用PHP启动/停止的全面信息的方向,HTML本身可能会使用PHP代码段。

4 个答案:

答案 0 :(得分:8)

尝试:

<?php
    echo htmlspecialchars("<?php the_author_meta('description'); ?>");
?>

答案 1 :(得分:7)

您不能让PHP回显更多要评估的PHP代码,因为PHP会在一次传递中解释您的代码。如果您有<?php echo '<?php echo "hello"; ?>'; ?>,那么您将从字面上获取文本<?php echo "hello"; ?>作为输出,并且解释器不会触及它。

然而,您可以随意跳入和跳出PHP:

<?php
echo "I am going to be interpreted by PHP.";
?>
I am not interpreted by PHP.
<?php
echo "But I am again.";
?>

如果您认为需要输出本身重新评估的PHP代码,总会有更好的方法来完成此任务。如果你举一个你想要完成的具体例子(现实世界的案例),那么这里的人们很乐意提供帮助。

答案 2 :(得分:3)

关于:&#34; PHP的一个方面似乎仍然让我感到困惑的是如何在输出HTML时结束并重新启动PHP。&#34;

<?php
// Do some wicked cool stuff in PHP here.
?>
<html>
<body>
Output some html here
<?php
//More awesome PHP stuff here.
?>
Back to html
</body>
</html>
<?php
// You can do any final stuff you want to do here.
?>

或许你的意思是这样的:

<table>
<?php 
foreach($person as $p){
  echo "<tr>";
  echo "<td>".$p['name']."</td>";
  echo "</tr>";
}
?>
</table>

答案 3 :(得分:1)

是的,但这是一个可怕的想法。在这种情况下,您应该只编写该函数。如果要将多个匹配项“链接”在一起,请创建自己的功能(例如function describe() {the_author_meta('description');}

通常,您需要意识到<?php和下一个?>之间的任何内容都将被视为PHP块并由引擎解析。这些块中的任何内容都保留原样。如果您遇到具体问题,请具体询问一下;)