Reputation: 228
<?php
$information = <<<INFO
Name: John Smith
Address: 123 Main St
City: Springville, CA
INFO;
echo $information;
?>
Result:
Parse error: syntax error, unexpected T_SL on line 3
Upvotes: 15
Views: 16282
Reputation: 1213
Heredoc syntax has some strict rules we have to consider;
1 - There shouldn't be any character after opening identifier
True
"$a = <<<HEREDOC"
False
"<<<HEREDOC " //Remove space after opening identifier;
2 - There shouldn't be any other character after and before closing identifier except delimiter semicolon ;
at the end. Also no indentation is allowed.
True
"HEREDOC;"
False
"HEREDOC ;" //Remove space between HEREDOC and ;
False
" HEREDOC;" //Remove space before HEREDOC
False
"HEREDOC; " //Remove space after ;
Heredoc string. END;
Upvotes: 5
Reputation: 51
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;
?>
Upvotes: 0
Reputation: 44376
I've just edited your question and fixed invalid formatting (SO is using Markdown). I found out that there is a space character after <<<INFO
- that causes the error.
Delete that space and everything should work fine... well - it has to works fine.
Upvotes: 4
Reputation: 6668
The parser is complaining because you have whitespace after the angled brackets declaring a heredoc. You need to make sure you're actually following the heredoc syntax, which you can find on the PHP Manual site (specifically: 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;
Upvotes: 29