$ _POST в пределах heredoc php

0

Мне нужно отобразить значение "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>
Теги:
heredoc

2 ответа

3
Лучший ответ

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

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

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

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

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

2

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

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

или

$name = $_POST["name"];
$y = <<<HERE
   $name
HERE;
  • 0
    2-й вариант работает хорошо, но я хотел знать, как правильно поместить $ _POST в heredoc

Ещё вопросы

Сообщество Overcoder
Наверх
Меню