Heredoc не работает
<?php
$information = <<<INFO
Name: John Smith
Address: 123 Main St
City: Springville, CA
INFO;
echo $information;
?>
Результат:
Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный T_SL в строке 3
4 answers
Синтаксический анализатор жалуется, потому что у вас есть пробелы после угловых скобок, объявляющих heredoc. Вам нужно убедиться, что вы действительно следуете синтаксису heredoc, который вы можете найти на сайте руководства по PHP (в частности: 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;
Я только что отредактировал ваш вопрос и исправил неверное форматирование (КАК и использование Markdown). Я обнаружил, что после <<<INFO
есть пробел, который вызывает ошибку.
Удалите это пространство, и все должно работать нормально... ну - это должно работать нормально.
Синтаксис Heredoc имеет некоторые строгие правила, которые мы должны учитывать;
1 - После открытия идентификатора не должно быть никакого символа
Верно
"$a = <<<HEREDOC"
Ложь
"<<<HEREDOC " //Remove space after opening identifier;
2 - После и перед закрывающим идентификатором не должно быть никаких других символов, кроме точки с запятой-разделителя ;
Верно
"HEREDOC;"
Ложь
"HEREDOC ;" //Remove space between HEREDOC and ;
Ложь
" HEREDOC;" //Remove space before HEREDOC
Ложь
"HEREDOC; " //Remove space after ;
Строка Heredoc. КОНЕЦ;
https://repl.it/@CiscoTest/PHP-Heredocs-lesslessless
<?php
//Heredocs start with <<< and a token ended with semi-colon
print <<< ENDHEREOK
We used ENDHEREOK "as" our token
Looks like it just "print"
things "as" it is. Let me loooook at what I just typed
I may add some more! I m gonna end it using ENDHEREOK but any token can be used
Give it a "try"! Also pay attention to so many double quotes because it is mandatory!
Also yes "if" you put
space after token(ENDHEREOK) above, you will get an error, just hit enter key after token!
Try this on repl.it
https://repl.it/@CiscoTest/PHP-Heredocs-lesslessless
ENDHEREOK;
?>