PHP中的Here Document

Here Document in PHP

提问人:Anya Dinger 提问时间:4/25/2023 更新时间:4/25/2023 访问量:62

问:

当 here 文档位于 php 的变量中时,如何调用 here 文档中的输入标签?

这是我的代码:

<?php
$myForm = <<<FORMSTUFF
   <h3>Generate ASCII Table</h3>
   <form action="$_SERVER[PHP_SELF]" method="post">
      <label for="numRows">Number of rows:</label>
      <input type="text" name="numRows" id="numRows" value="32">
      <br><br>
      <input type="submit" name="go" value="Create ASCII Table">
    </form>
FORMSTUFF;

$numRows = $_POST['numRows'];
?>

我尝试使用“get”而不是“post”,但这没有用。我还尝试将“$_POST”替换为“$myForm”,但也没有用。your text

PHP 赫列多克

评论

3赞 Barmar 4/25/2023
$_POST在用户下次提交表单之前不会设置。在创建表单时,不能使用它(除非需要上一次提交的值)。
3赞 ADyson 4/25/2023
您在这里面临的问题究竟是什么?我可以看到的主要问题是 $numRows = $_POST['numRows'] 将在用户实际提交表单之前执行。这与heredoc的用法无关
0赞 Anya Dinger 4/25/2023
我正在尝试从文本输入中获取用户的输入。
1赞 ADyson 4/25/2023
这回答了你的问题吗?检查表单是否已提交 - PHP
1赞 Álvaro González 4/25/2023
顺便说一句,heredoc 似乎不是在大块 HTML 中注入单个变量的最方便的语法。看看 php.net/manual/en/tutorial.firstpage.php 更方便的东西。

答:

1赞 Deepak Thomas 4/25/2023 #1

在 heredoc 中使用数组字符串索引的方式略有变化。此外,您还缺少用于有条件地处理处理的 POST 方法检查

<?php
$myForm = <<<FORMSTUFF
   <h3>Generate ASCII Table</h3>
   <form action="{$_SERVER['PHP_SELF']}" method="post">
      <label for="numRows">Number of rows:</label>
      <input type="text" name="numRows" id="numRows" value="32">
      <br><br>
      <input type="submit" name="go" value="Create ASCII Table">
    </form>
FORMSTUFF;

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
   $numRows = $_POST['numRows'];
   // your code comes here;
   return;
}
?>

评论

0赞 Deepak Thomas 4/25/2023
使用开机自检检查更新了答案