php - 在 if/elseif block 中使用 echo <<<EOT 出现意外的 EOF

标签 php

我需要在页面上有一个 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/

相关文章:

PHP - 如何读取私有(private) XML 文件?

php - 正则表达式在字符串中查找标签 - 不采用初始标签符号

PHP:当变量(b)包含文本时如何在另一个变量(b)中显示变量(a)

php - 如何在一个表中链接两个具有自动递增 id 的表?

php - 尝试使用 ajax 将参数传递给模式?

php - php中特定日期的最后一个工作日

javascript - 如何从网页获取源代码?

php - TCPDF ERROR : Some data has already been output, 无法发送 PDF 文件

带有图像的 php 电子邮件()

php - 使用 PHP 执行 FFMPEG shell - 由于 GCC 导致的异常错误