我使用Swiftmailer PHP创建订单完整页面。当客户登陆此页面时,我使用包含到PHP文件。
此页面文件包含发送给客户的SwiftMailer EOM HTML。但是我将HTML部分放在块中,所以标题是通过一个名为header的函数,顺序总和也是相同的。我希望能够在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);
答案 0 :(得分:1)
您所谈论的是Heredocs,它们不支持功能插值,只有variable interpolation。
答案 1 :(得分: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);