我需要在页面上有一个 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 导致了问题。我该如何解决这个问题?或者更确切地说,这样做的正确方法是什么?
最佳答案
看起来第二个 EOT;
之后有空格,因此您需要删除这些空格。
我在删除空白后对此进行了测试,它有效。
因此,包含 EOT;
的行中不能有空格,只有 EOT;
if ($lang == "en") {
echo <<<EOT
some html
EOT;
}elseif ($lang == "sp"){
echo <<<EOT
some html
EOT;
}
关于php - 在 if/elseif block 中使用 echo <<<EOT 出现意外的 EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24487500/