Heredoc не работает

<?php

$information = <<<INFO 
Name: John Smith
Address: 123 Main St
City: Springville, CA
INFO;

echo $information;

?>

Результат:

Ошибка анализа: синтаксическая ошибка, неожиданный T_SL в строке 3

Ответ 1

Парсер жалуется, потому что у вас есть пробелы после угловых скобок, объявляющих heredoc. Вам нужно убедиться, что вы действительно следуете синтаксису heredoc, который вы можете найти на сайте PHP Manual (в частности: http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc).

<?php
$information = <<<ENDHEREDOC
this is my text
ENDHEREDOC;
echo $information;

Ответ 2

Я только что редактировал ваш вопрос и исправил неверное форматирование (SO использует Markdown). Я узнал, что после <<<INFO - пробел, который вызывает ошибку.

Удалите это пространство, и все должно работать нормально... хорошо - он должен хорошо работать.

Ответ 3

Синтаксис Heredoc содержит некоторые строгие правила, которые мы должны рассмотреть;

1 - После открытия идентификатора не должно быть символа

True

"$a = <<<HEREDOC"

False

"<<<HEREDOC   "   //Remove space after opening identifier;

2 - не должно быть никакого другого символа после и до закрытия идентификатора, кроме разделителя с запятой ;

True

"HEREDOC;"

False

"HEREDOC  ;"   //Remove space between HEREDOC and ;

False

" HEREDOC;"   //Remove space before HEREDOC

False

"HEREDOC; "   //Remove space after ;

Цепочка Heredoc. END;