这会产生输出页面OK
$mystring = "<<<EOT";
用以下产品替换它
Parse error: syntax error, unexpected $end in file.php on line 737
$mystring = <<<EOT
This is some PHP text.
It is completely free
I can use "double quotes"
and 'single quotes',
plus $variables too, which will
be properly converted to their values,
you can even type EOT, as long as it
is not alone on a line, like this:
EOT;
关于是什么导致解析器窒息的任何想法?
我使用的是PHP 4.4.7.
只有一个文件才会发生此行为,所有其他行为都遵循PHP定义的功能.
我试图重述的是在程序行中可能出错的地方,以便PHP解析器在此失败中显示.
约翰
将文件内容更改为: –
<?php
$mystring = <<<WHATEVER
This is some PHP text.
WHATEVER;
?>
结果=
解析错误:语法错误,第5行的file.php中的意外$end
任何线索
编辑
原始错误与T_ENCAPSED_AND_WHITESPACE有关,这可能是由jQuery引起的,例如“if(x == y){$(‘#my_image’).hide():}”在heredoc内是bigram“{$将启动解析器寻找替代的php变量.
编辑
2个好的回答.
1)Ch4m3l3on – “<?php”vs“<?”处理. 2)Disintegrator – < q>与愚蠢的程序有类似的问题,该程序坚持将BOM放入utf-8文件(忽略首选项)< / q>.
编辑
1)用单个块替换所有内容并不能解决问题或提供任何其他指针.
2)没有BOM(字节顺序标记),可惜这个或类似的majic字符会完美地解释所有症状.
解决方法:
你必须把你的结尾heredoc放在行的开头.如果您使用某些具有缩进的IDE,请将其删除!你的结尾heredoc必须与你的结束php标签垂直在同一行(