Мне нужно отобразить значение "name" после отправки. Мой код не работает. Я знаю, что самый простой способ - просто использовать " 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;