Мне нужно отобразить значение «имя» после отправки. Мой код не работает.
Я знаю, что самый простой способ — это просто использоватьecho $ _POST [«name»]«, но задача состоит в том, чтобы понять, как работает» heredoc «. Я только начал изучать PHP. Здесь ошибка?
test.html
<!DOCTYPE html>
<html>
<body>
<form action="test.php" method="post">
Name: <input type="text" name="name">
<input type="submit">
</form>
</body>
</html>
test.php
<!DOCTYPE html>
<html>
<body>
<?php
$y = <<<HERE
$_POST["name"]
HERE;
echo $y;
?>
</body>
</html>
Вам нужно использовать фигурные скобки.
$y = <<<HERE
{$_POST["name"]}
HERE;
Это так же, как если бы вы просто создавали строку
$y = "Name = {$_POST['name']}";
Об этом подробнее здесь: http://php.net/manual/en/language.types.string.php. Найдите раздел под названием Сложный (фигурный) синтаксис.
Yo не может напрямую использовать ссылку на массив в операторе heredoc. Вы должны заключить его в фигурные скобки
$y = <<<HERE
{$_POST["name"]}
HERE;
или же
$name = $_POST["name"];
$y = <<<HERE
$name
HERE;