0

可能重复:
在 HEREDOC 字符串中调用 PHP 函数

我正在使用 Swiftmailer PHP 创建一个完整的订单页面。当客户登陆此页面时,我使用 PHP 文件的包含。

此页面文件包含发送给客户的 SwiftMailer EOM HTML。但是我有块的 HTML 部分,所以标题是通过一个称为标题的函数,订单总数也是相同的。我希望能够在 EOM 中包含 EOM 函数。这可能吗?

Id  =       46088;

// MAIL FUNCTION
function mailToSend($Id){

// EOM CAN'T BE TABBED
$html = <<<EOM
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
getHeader($Id);
getOrderTotalBoxTable($Id);
</body>
</html>
EOM;


}

mailToSend(46088);
4

2 回答 2

1

你说的是Heredocs,它们不支持函数插值,只支持变量插值

于 2012-12-17T15:46:17.160 回答
1

就像@deceze 说的那样,你不能,但这会起作用(将@xenon 评论扩展到一个例子):

function getHeader($Id = '')
{
    $text = '';
    $text.=' Your first line of text, store it in an variable <br>';
    $text.= 'Hello '.$Id.'<br>';
    $text.='Your last text to be returned<br>';
    return $text;
}

// MAIL FUNCTION
function mailToSend($Id){

    $getHeader = getHeader($Id);
    $getOrderTotalBoxTable = getOrderTotalBoxTable($Id);

    // EOM CAN'T BE TABBED
$html = <<<EOM
    <!DOCTYPE html>
    <html lang="en">
    <head>
    </head>
    <body>
    $getHeader;
    $getOrderTotalBoxTable;
    </body>
    </html>
EOM;

}

mailToSend(46088);
于 2012-12-17T16:00:40.727 回答