$ _POST в переполнении стека heredoc

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

0

Решение

Вам нужно использовать фигурные скобки.

$y = <<<HERE
{$_POST["name"]}
HERE;

Это так же, как если бы вы просто создавали строку

$y = "Name = {$_POST['name']}";

Об этом подробнее здесь: http://php.net/manual/en/language.types.string.php. Найдите раздел под названием Сложный (фигурный) синтаксис.

3

Другие решения

Yo не может напрямую использовать ссылку на массив в операторе heredoc. Вы должны заключить его в фигурные скобки

$y = <<<HERE
{$_POST["name"]}
HERE;

или же

$name = $_POST["name"];
$y = <<<HERE
$name
HERE;
2

По вопросам рекламы [email protected]