0

我使用 heredoc 语法来填充一些内容以供输出。

在准备这些内容时,我需要检查一些条件来决定是否添加它们。

当我尝试时,它显示错误..

 echo <<<END_HTML
<div class="menu_form_body">
<table style="font-family:arial; font-size:12px; color:#ffffff;">
    <tr>
        <td colspan="2" align="center"><center><b>{$title}</b></center></td>
    </tr>
    <tr>
        <td>{$filter[$key]['street']}<br/>
            {$filter[$key]['city']}, {$filter[$key]['state']}<br/>
            {$filter[$key]['zip']}<br/>
        </td>
        <td nowrap>{$filter[$key]['phone']}<br/>
            {$filter[$key]['email']} // here i need to check for some condition
        </td>
    </tr>
END_HTML;

所以我尝试了

....
<td nowrap>{$filter[$key]['phone']}<br/>
END_HTML;
if($filter[$key]['display_email']!='No'){
echo <<<END_HTML
{$filter[$key]['email']}
END_HTML;
}
echo <<<END_HTML
....
...
END_HTML;

可能是什么问题?

4

2 回答 2

2

我什至不确定这是否可能在 heredoc 声明中。但除此之外,它只是丑陋且难以阅读。你不想这样做。

为什么你的heredoc里面需要一个条件?您可以在执行 heredoc 语句之前进行条件评估。

$condition = output condition $filter[$key]['email']

echo <<<END_HTML
  {$condition}
END_HTML;
于 2011-03-01T12:29:37.843 回答
0

确保没有您的 END_HTML;语句是缩进的。

另外,为什么你必须为此使用heredoc?为什么不这样做:

if($filter[$key]['display_email']!='No'){
echo "{$filter[$key]["email"]}";
}
于 2011-03-01T12:33:44.417 回答