这将产生输出页面 OK
$mystring = "<<<EOT";
用以下内容替换会产生如下错误:
在文件.php的第737行,出现语法错误:意外的$end
$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解析器显示出这个错误。
John
将文件内容更改为:-
<?php
$mystring = <<<WHATEVER
This is some PHP text.
WHATEVER;
?>
结果 =
解析错误:在文件.php的第5行出现意外的$end符号。
有什么线索吗?
编辑
原始错误与T_ENCAPSED_AND_WHITESPACE有关,例如jQuery中的"if(x == y){$('#my_image').hide():}
"在heredoc中,bigram "{$将启动解析器寻找用于替换的PHP变量。
编辑
2个好的回应。
1)Ch4m3l3on - "<?php
"与"<?
"处理。
2)The Disintegrator - <q>
遇到类似的问题,一个愚蠢的程序坚持将BOM放入utf-8文件(忽略首选项)</q>
。
编辑
1)用单个块替换所有内容无法解决问题或提供任何其他指针。
2)没有BOM(字节顺序标记),可惜这或类似的神奇字符可以完美地解释所有症状。