3

是否可以将条件逻辑放在 EOD 字符串中?

$str = <<<EOD

<table>
    <tr>
        <td>
            if ( !empty($var1) ) {
                {$var1}
            } else {
                {$var2}
            }
        </td>
    </tr>
</table>

这对我不起作用,而且看起来好像不起作用,但我想我会采取行动。

另外,是EOD还是EOT?两者似乎都有效。

4

1 回答 1

3

不,您不能在heredoc中使用条件。

另外,是EOD还是EOT

只要您的开头和结尾字符串匹配,您就可以使用任何内容:

 $x = <<<THOMAS
 Pick a string, any string
 THOMAS;

该文档包含几个示例来证明这一点

至于如何最好地实现您提供的示例,这将是我的第一个倾向:

$td = !empty($var1) ? $var1 : $var2;
$str = <<<EOD
<table>
    <tr>
        <td>
            {$td}
        </td>
    </tr>
</table>
EOD;
于 2012-08-29T16:55:01.380 回答