15

在 html 中大量使用 PHP 的小片段的情况下,例如 Wordpress,您可以在 PHP 回显中使用 PHP 吗?

例子:

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

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

例如,克里斯在这里的回答:如何在 PHP 中回显 HTML?- 我非常想?>在他的示例末尾加上 a ,但这会导致错误。有人可以向我指出一些全面信息的方向,说明在与 HTML 混合时如何使用 PHP 启动/停止,HTML 本身可能在其中使用 PHP 片段。

4

4 回答 4

9

尝试:

<?php
    echo htmlspecialchars("<?php the_author_meta('description'); ?>");
?>
于 2013-03-05T15:52:41.400 回答
8

您不能让 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 代码,总有更好的方法来完成此操作。如果你给出一个你想要完成的具体例子(真实案例),那么这里的人会很乐意提供帮助。

于 2013-03-05T15:50:43.300 回答
4

关于:“PHP 的一个方面似乎仍然让我有些困惑,那就是在输出 HTML 时如何结束和重新启动 PHP。”

<?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>
于 2013-03-05T15:50:40.220 回答
1

是的,但这是一个可怕的想法。在这种情况下,您应该只编写函数。如果您想将多个事件“链接”在一起,请创建您自己的函数来执行此操作(例如function describe() {the_author_meta('description');}

通常,您需要意识到介于两者之间<?php的任何内容都?>将被视为 PHP 块并由引擎解析。这些块中的任何东西都保持原样。如果您有具体问题,请具体询问;)

于 2013-03-05T15:47:46.080 回答