PHP eval和heredoc不能很好地发挥

时间:2012-10-22 18:42:18

标签: php eval heredoc

  

可能重复:
  heredoc with eval code execution

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

eval("\$content = <<<TEMPLATE\n
               asdf
\nTEMPLATE;");

我不断收到错误说:

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

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

1 个答案:

答案 0 :(得分:6)

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