在 HTML 中调用 PHP 变量

Call PHP variable in HTML

我写了一个包含嵌套 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>

PHP有两种模式。

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

您有 <?php echo $v ?> inside 一个 PHP 部分(在使用 HEREDOC 创建的字符串内)。

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

<?php echo $v ?>会在(无效的)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;