PHP eval和heredoc不能很好地发挥

cst*_*fel 4 php eval heredoc

可能重复:
带有eval代码执行的heredoc

所以我在function.php中有以下内容:

eval("\$content = <<<TEMPLATE\n
               asdf
\nTEMPLATE;");
Run Code Online (Sandbox Code Playgroud)

我一直收到错误说:

Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_END_HEREDOC or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in /var/www/function.php(10) : eval()'d code on line 5
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚问题是什么.heredoc语法显然有一个结局,heredoc是不是喜欢和eval一起玩?

Nie*_*sol 6

HEREDOC语法以开头定义的分隔符结束,后跟分号,后跟换行符.您没有换行符,因此它未被识别为HEREDOC的结尾.添加额外的\nTEMPLATE;,它应该工作正常.