【问题标题】:Call PHP variable in HTML在 HTML 中调用 PHP 变量
【发布时间】:2022-01-26 01:19:30
【问题描述】:

我编写了一个涉及嵌套 PHP 和 HTML 部分的代码,如下所示。为什么变量“v”不显示,而变量“u”却显示?

<?php

$v= rand (1,15);
$u= rand (1,15);

$h = <<<EOD
            <!DOCTYPE html>
            <html>
            <body>
                    <p style="margin-top:80px">This is a random number:</p>
                    <?php echo $v ?>
            </body>
            </html>
EOD;
            echo $h;

?>

<html>

    <body>
        u=<?php echo $u ?>
    </body>

</html>

【问题讨论】:

  • 您的问题是not reproducible
  • @AksenP — 嗯?它是完全可重现的。
  • 这不是heredoc的工作方式。
  • @Quentin,我的意思是所有变量都按原样显示,包括它们的值。
  • @AksenP 你的小提琴字面上输出&lt;php echo somevalue ?&gt; 而不应该有标签也没有回声

标签: php html nested


【解决方案1】:

PHP 有两种模式。

  1. &lt;?php...?&gt;(和其他 PHP 标记)内评估 PHP 代码
  2. 在这些标签之外,代码直接流式传输到输出

您有&lt;?php echo $v ?&gt; 一个 PHP 部分(在使用 HEREDOC 创建的字符串内)。

创建字符串时它不会触发 PHP 对内容的评估,因为它只是字符串的一部分。当您稍后 echo 它时它不会触发 PHP 评估,因为您只是在回显一个字符串。

&lt;?php echo $v ?&gt; 将在(无效的)HTML 中发送给浏览器,浏览器会将其视为未知标签。 $v 的值将是属性之一。浏览器不会为这个未知选项卡呈现任何内容,但您将能够在 Developer Tools Inspector 或 View 中看到它➝Source


重新考虑您的应用程序设计。不要尝试存储包含 PHP 代码的字符串。首先生成包含您需要的数据的字符串。

$h = <<<EOD
            <!DOCTYPE html>
            <html>
            <body>
                    <p style="margin-top:80px">This is a random number:</p>
                   $v
            </body>
            </html>
EOD;
            echo $h;

【讨论】:

  • 我可以用java脚本代替我写的吗
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-25
  • 2014-06-04
  • 2013-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多