我需要在页面上有一个if / elseif语句,它需要回显相当多的HTML行。为简单起见,我不想转义所有引号,而是希望PHP忽略引号,所以我使用echo <<<EOT .... EOT;
现在问题是编译得很好:
if ($lang == "en") {
echo <<<EOT
some html
EOT;
}
但这会引发syntax error, unexpected end of file
:
if ($lang == "en") {
echo <<<EOT
some html
EOT;
}
elseif ($lang == "sp") {
echo <<<EOT
some html
EOT;
}
显然,在导致问题的if / elseif中使用多个EOT。我该如何解决这个问题?或者更确切地说,这样做的正确方法是什么?
答案 0 :(得分:1)
在第二个EOT;
之后看起来你有空白区域所以你需要删除这些空格。
我在移除空白区域后对其进行了测试,并且可以正常工作。
因此,EOT;
只有EOT;
if ($lang == "en") {
echo <<<EOT
some html
EOT;
}elseif ($lang == "sp"){
echo <<<EOT
some html
EOT;
}
答案 1 :(得分:1)
heredoc
开始之后和结束标记之前,空格不应该显示:了解更多信息click here
_____________No white space here
|
\/
echo <<<EOT
some html
EOT;
/\
|_________No white space here